java獲取反射獲取私有屬性值
阿新 • • 發佈:2019-02-04
//拼接類名
String ob = "com.project.framework.entity.form.ReShipChangeregistration";
//反向生成class物件
Class cls=Class.forName(ob);
//將物件例項化
Object newInstance = cls.newInstance();
System.out.println(cls.getName());
//得到物件的所有私有屬性
Field[] fields = cls.getDeclaredFields();
System.out.println(fields.length);
for(int i=0;i<fields.length;i++){
//設定私有屬性允許訪問
fields[i].setAccessible(true);
//得到屬性值
Object password = fields[i].get(newInstance);
System.out.println(fields[i].getName()+".........."+password);
Class<?> cls=list.get(0).getClass();
Method getStatus=cls.getDeclaredMethod("getStatus");
Method setStatus=cls.getDeclaredMethod("setStatus", new Class[] { String.class });
Method manager = cls.getDeclaredMethod("set"+custom1+"manager", new Class[] { String.class });
Method managerid = cls.getDeclaredMethod("set"+custom1+"managerid", new Class[] { String.class });
Method yijians = cls.getDeclaredMethod("set"+custom1+"yijian", new Class[] { String.class });
Method shijian = cls.getDeclaredMethod("set"+custom1+"shijian", new Class[] { java.util.Date.class });
manager.invoke(list.get(0), pname);
managerid.invoke(list.get(0), Local.getUserid());
String ob = "com.project.framework.entity.form.ReShipChangeregistration";
//反向生成class物件
Class cls=Class.forName(ob);
//將物件例項化
Object newInstance = cls.newInstance();
System.out.println(cls.getName());
//得到物件的所有私有屬性
Field[] fields = cls.getDeclaredFields();
System.out.println(fields.length);
for(int i=0;i<fields.length;i++){
//設定私有屬性允許訪問
fields[i].setAccessible(true);
//得到屬性值
Object password = fields[i].get(newInstance);
System.out.println(fields[i].getName()+".........."+password);
Class<?> cls=list.get(0).getClass();
Method getStatus=cls.getDeclaredMethod("getStatus");
Method setStatus=cls.getDeclaredMethod("setStatus", new Class[] { String.class });
Method manager = cls.getDeclaredMethod("set"+custom1+"manager", new Class[] { String.class });
Method managerid = cls.getDeclaredMethod("set"+custom1+"managerid", new Class[] { String.class });
Method yijians = cls.getDeclaredMethod("set"+custom1+"yijian", new Class[] { String.class });
Method shijian = cls.getDeclaredMethod("set"+custom1+"shijian", new Class[] { java.util.Date.class });
manager.invoke(list.get(0), pname);
managerid.invoke(list.get(0), Local.getUserid());