为什么编译器没有注意到boolean已声明为true?

时间:2016-07-08 09:24:41

标签: java android android-studio boolean

在这种方法中:

 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)行,我收到警告:

  

条件!可见总是正确的   可见值始终为假

但是看看调用方法:

if (count2.getVisibility() == View.INVISIBLE) {
  implementVisibility(count2, action2, remove2,true);
}

visible true,因此总是为false。为什么编译器没有注意到这一点?

注意:请不要仅仅因为这个问题被严重贬低而进行投票。这个问题已经过编辑和改进。谢谢。

2 个答案:

答案 0 :(得分:4)

当程序控制到达else if(!visible){时,visible只能 false

您的编译器暗示您应该将代码澄清为else {

答案 1 :(得分:-1)

布尔变量只有2个值为true或false,因此您应该按以下方式编辑代码:

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 {
            // do something
        }

    }