2017-10-14 4 views
-2

J'essaie d'obtenir la valeur d'une variable booléenne par réflexion mais je finis par obtenir un IllegalArgumentException.Récupérer la valeur de la variable booléenne via Java Réflexion

Test c = new Test(); 
Class clazz = c.getClass(); 
java.lang.reflect.Field field = clazz.getDeclaredField("flag"); 
field.setAccessible(true); 
Object val = field.get(clazz); 

Lorsque cela est la classe Test:

public class Test { 
    private boolean flag; 
} 

je finis par obtenir erreur stacktrace

java.lang.IllegalArgumentException: Can not set boolean field com.Test.flag to java.lang.Class 

Quelqu'un pourrait-il expliquer s'il vous plaît où il va mal.

+0

Pouvez-vous montrer votre classe 'Test'? – SilverNak

Répondre

4

vous devriez obtenir ce champ de l'objet, pas de classe ...

Object val = field.get(c); 
0

Vous devez changer field.get(clazz)-field.get(c).