首页 > 编程 > Java > 正文

自己写过的Java反射

2019-11-06 07:49:59
字体:
来源:转载
供稿:网友

1. 反射Liferay自动生成的entity

PRivate static Object[] reflectValues(InterviewInfo interviewInfo) { Object[] values = new Object[11] ; int index = 0 ; Class<?> interviewInfoModelImpl = interviewInfo.getClass().getSuperclass().getSuperclass() ; Field[] modelImplFields = interviewInfoModelImpl.getDeclaredFields() ; for (int i = 17; i < modelImplFields.length-2; i ++) { modelImplFields[i].setaccessible(true); if((18<=i && i<=24) || (31<=i && i<=32)) { continue ; } try { // log.info(modelImplFields[i].getName()+":"+modelImplFields[i].get(interviewInfo)); values[index] = modelImplFields[i].get(interviewInfo) ; index ++ ; } catch (IllegalArgumentException | IllegalAccessException e) { log.error(e); } } return values ; }private static InterviewDataTransfer reflectSetInterview(Object[] values) { Class<?> clazz = InterviewDataTransfer.class ; InterviewDataTransfer interview = null ; try { interview = (InterviewDataTransfer)clazz.newInstance() ; } catch (InstantiationException | IllegalAccessException e) { log.error(e); } Field[] fields = clazz.getDeclaredFields() ; for (int i = 0; i < values.length; i++) { // log.info("fields-"+i+":"+fields[i+1].getName()+", values-"+i+":"+values[i]); try { PropertyDescriptor descriptor = new PropertyDescriptor(fields[i].getName(), clazz) ; Method method = descriptor.getWriteMethod() ; try { method.invoke(interview, values[i]) ; } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { log.error(e); } } catch (IntrospectionException e) { log.error(e); } } return interview ;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表