反射初试
添加时间:2013-5-7 点击量:
工作顶用到反射,代码记录如下
public String callXMLHandler(Object obj) throws IllegalArgumentException, IllegalAccessException{
Class<? extends BaseRequestBean> clazz = (Class<? extends BaseRequestBean>)obj.getClass();
Class<BaseRequestBean> clazzSuper = (Class<BaseRequestBean>) clazz.getSuperclass();//获得父类的Class
Field field[] = clazz.getDeclaredFields();//getDeclaredFields 无法获得持续属性
//System.out.println(field.length);
Field fieldSuper[] = clazzSuper.getDeclaredFields();//获得父类属性
//System.out.println(fieldSuper.length);
XMLEntity e = new XMLEntity();
for (Field f1 : field) {
f1.setAccessible(true);//作废接见权限搜检,以便可以或许接见非公共属性
System.out.println(f1.getName()+,+f1.get(obj));
e.body.put(f1.getName(), (String)f1.get(obj));
}
for (Field f2 : fieldSuper){
f2.setAccessible(true);
e.head.put(f2.getName(), (String)f2.get(obj));
}
String str = buildXML.buildXMLStrByXMLEntity(e);
return str;
}
obj中对象属性未应用public润饰,之前未添加f1.setAccessible(true),运行时报错: java.lang.IllegalAccessException: Class union.web.mvc.services.base.InvokeXMLStr can not access a member of class union.web.mvc.services.dataDictionary.addTable.AddTableReqBean with modifiers
getDeclaredFields()办法无法获得持续属性
getFields()办法无法获得非公共属性
getDeclaredMethods()和getMethods()也同理
原来,再大的房子,再大的床,没有相爱的人陪伴,都只是冰冷的物质。而如果身边有爱人陪伴,即使房子小,床小,也觉得无关紧要,因为这些物质上面有了爱的温度,成了家的元素。—— 何珞《婚房》#书摘#
工作顶用到反射,代码记录如下
public String callXMLHandler(Object obj) throws IllegalArgumentException, IllegalAccessException{
Class<? extends BaseRequestBean> clazz = (Class<? extends BaseRequestBean>)obj.getClass();
Class<BaseRequestBean> clazzSuper = (Class<BaseRequestBean>) clazz.getSuperclass();//获得父类的Class
Field field[] = clazz.getDeclaredFields();//getDeclaredFields 无法获得持续属性
//System.out.println(field.length);
Field fieldSuper[] = clazzSuper.getDeclaredFields();//获得父类属性
//System.out.println(fieldSuper.length);
XMLEntity e = new XMLEntity();
for (Field f1 : field) {
f1.setAccessible(true);//作废接见权限搜检,以便可以或许接见非公共属性
System.out.println(f1.getName()+,+f1.get(obj));
e.body.put(f1.getName(), (String)f1.get(obj));
}
for (Field f2 : fieldSuper){
f2.setAccessible(true);
e.head.put(f2.getName(), (String)f2.get(obj));
}
String str = buildXML.buildXMLStrByXMLEntity(e);
return str;
}
obj中对象属性未应用public润饰,之前未添加f1.setAccessible(true),运行时报错: java.lang.IllegalAccessException: Class union.web.mvc.services.base.InvokeXMLStr can not access a member of class union.web.mvc.services.dataDictionary.addTable.AddTableReqBean with modifiers
getDeclaredFields()办法无法获得持续属性
getFields()办法无法获得非公共属性
getDeclaredMethods()和getMethods()也同理原来,再大的房子,再大的床,没有相爱的人陪伴,都只是冰冷的物质。而如果身边有爱人陪伴,即使房子小,床小,也觉得无关紧要,因为这些物质上面有了爱的温度,成了家的元素。—— 何珞《婚房》#书摘#