Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Java反射检索布尔变量的值_Java_Reflection - Fatal编程技术网

通过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)

您可以显示您的
测试
类吗?