检查字段是真还是假,并用Java进行反射

问题描述 投票:0回答:3

当前正在尝试对某些菜单功能进行编码,并想知道是否有一种方法可以确定布尔字段是对还是错。这是我目前正在尝试的代码,但出现错误

try{

     field = a.getClass().getField(b); 

     if(toggle==1&&field){
     }else if(toggle==1&&!field){
       field.set(a, true);
     }else if(toggle==0&&!field){
     }else if(toggle==0&&field){
       field.set(a, false);
     }
}catch (NullPointerException e) {
}catch (NoSuchFieldException e) {
}catch (IllegalAccessException e) {
}

错误是

The operator && is undefined for the argument type(s) boolean, Field
java reflection boolean field
3个回答
0
投票

Class.getField(String)返回java.lang.reflect.Field。您将需要以该getBoolean作为参数来调用a。请注意,您假设该字段是公共字段,这可能不是一个好主意。同样,反思通常不是一个好主意。


0
投票

您需要根据实例获取字段的值。

boolean value = field.getBoolean(instance);

0
投票

[a.getClass().getField(b);返回java.lang.reflect.Field;,不是布尔类型。

您可以使用field.getBoolean(a)来获得布尔值。

© www.soinside.com 2019 - 2024. All rights reserved.