日期:2014-05-20  浏览次数:20813 次

请教一个关于java反射的问题
我在一个类中定义了一个
private int width= 300;

在另外一个类中想使用反射来获取这个值,

Field field = clzz.getDeclaredField("width");
field.setAccessible(true);
int width = field.getInt(clzz);

但是在运行过程中出现了异常

java.lang.IllegalArgumentException: Can not set int field com.soft.test.TestLayout.width to java.lang.Class


请问这是什么原因造成的?如何解决?
------解决方案--------------------
你实例化clzz
field.getInt(clzz.newInstance())

------解决方案--------------------
引用:
Quote: 引用:

你实例化clzz
field.getInt(clzz.newInstance())

不能实例化啊,我那是个JFrame,实例化就会显示一个面板了,我要获取width和height两个属性呢。


对象属性不实例化怎么能够获取到属性呢,除非是静态属性。