通过Java反射检索布尔变量的值
我试图通过反射获得布尔变量的值,但最终得到了一个通过Java反射检索布尔变量的值,java,reflection,Java,Reflection,我试图通过反射获得布尔变量的值,但最终得到了一个IllegalArgumentException Test c = new Test(); Class clazz = c.getClass(); java.lang.reflect.Field field = clazz.getDeclaredField("flag"); field.setAccessible(true); Object val = field.get(clazz); 其中这是测试类: public class Test {
IllegalArgumentException
Test c = new Test();
Class clazz = c.getClass();
java.lang.reflect.Field field = clazz.getDeclaredField("flag");
field.setAccessible(true);
Object val = field.get(clazz);
其中这是测试
类:
public class Test {
private boolean flag;
}
我最终得到了错误跟踪
java.lang.IllegalArgumentException: Can not set boolean field com.Test.flag to java.lang.Class
有人能解释一下哪里出了问题。您应该从对象而不是类获取此字段
Object val = field.get(c);
您需要将
field.get(clazz)
更改为field.get(c)
您可以显示您的测试
类吗?