得到属性的值(反射)
来源:百度知道 编辑:UC知道 时间:2024/06/05 17:31:01
如何用反射得到一个属性的值,前提:
1.不是用共有的get方法或者类似的方法获得。
2.这个属性可能是private。
3.追分
请不要copy大段的代码或资料,谢谢!
1.不是用共有的get方法或者类似的方法获得。
2.这个属性可能是private。
3.追分
请不要copy大段的代码或资料,谢谢!
1是什么意思?什么叫共有的? public的?
如果你的想法能实现,对象的封装就无从谈起了。
单例模式
public void listFieldsValue(Object obj) throws Exception{
Class tarClass = obj.getClass();
Field[] objFields = tarClass.getDeclaredFields();
for(int i=0;i<objFields.length;i++){
objFields[i].setAccessible(true);//如果是private,是必须的
System.out.println(objFields[i].get(obj));
}
}
反射是不能获取private的属性的值的,
否则就不是封装了。