【发布时间】:2020-03-16 01:07:52
【问题描述】:
目前正在尝试编写一些菜单功能,并想知道是否有办法找出布尔字段是真还是假。这是我目前正在尝试的代码,但出现错误
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
【问题讨论】:
-
当你知道
set(a, false)时,你应该知道get(a),或者getBoolean(a)。但是为什么要在这些多余的检查上浪费时间呢?if(toggle==1) field.set(a, true); else if(toggle==0) field.set(a, false);就是这样。将字段设置为它已经具有的值无论如何都没有效果。如果toggle总是八个零或一,那么即使field.set(a, toggle != 0);也足够了。
标签: java reflection boolean field