【发布时间】:2016-11-10 19:37:47
【问题描述】:
在这个方法中:
private void implementVisibility(EditText A, EditText B, ImageButton C, boolean visible) {
if (visible) {
A.setVisibility(View.VISIBLE);
B.setVisibility(View.VISIBLE);
C.setVisibility(View.VISIBLE);
}
else if (!visible) { // warning here
}
}
在else if (!visible) 行我收到警告:
条件 !visible 始终为真
可见的值总是假的
但是看调用方法:
if (count2.getVisibility() == View.INVISIBLE) {
implementVisibility(count2, action2, remove2,true);
}
visible 是 true,因此它并不总是为假。为什么编译器没有注意到这一点?
【问题讨论】:
-
改用else
-
只需阅读您的代码。首先,您要问“这是真的”;如果不是这种情况,您会问“这不是真的吗”。提示:你不需要第二个问题;这就是布尔值的概念——它不是真就是假。并提示:A、B、C 是变量的真正糟糕名称。我认为禁止每个变量名使用多个字符的法律在 1979 年底被废除了 ;-)
-
布尔只有两种可能,所以if和else语句就足够了
-
你的意思是,在行:implementVisibility(count2, action2, remove2,true);编译器必须注意到最后一个参数总是正确的?
-
@berserk 它说布尔值始终为假,但在一种方法中,我将该布尔值传递为真
标签: java android android-studio boolean