2017-10-14 14 views
-2

私は反射を通してブール変数の値を取得しようとしていますが、最終的にはIllegalArgumentExceptionになります。これはTestクラスですJava Reflectionを通じてブール変数の値を取得します

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 

を取得し終わる誰かが、それは間違っている場合を説明してもらえます。

+0

あなたの 'Test'クラスを表示できますか? – SilverNak

答えて

4

あなたがfield.get(c)field.get(clazz)を変更する必要があります... OBJECT、ないCLASSから

Object val = field.get(c); 
0

をこのフィールドを取得する必要があります。

関連する問題