当前正在尝试对某些菜单功能进行编码,并想知道是否有一种方法可以确定布尔字段是对还是错。这是我目前正在尝试的代码,但出现错误
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
Class.getField(String)
返回java.lang.reflect.Field
。您将需要以该getBoolean
作为参数来调用a
。请注意,您假设该字段是公共字段,这可能不是一个好主意。同样,反思通常不是一个好主意。
您需要根据实例获取字段的值。
boolean value = field.getBoolean(instance);
[a.getClass().getField(b);
返回java.lang.reflect.Field;
,不是布尔类型。
您可以使用field.getBoolean(a)
来获得布尔值。