得到属性的值(反射)

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:31:01
如何用反射得到一个属性的值,前提:

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的属性的值的,
否则就不是封装了。