最干净的方式来切换Java中的布尔variables?
有没有更好的方法来否定Java中的布尔值而不是简单的if-else?
if (theBoolean) { theBoolean = false; } else { theBoolean = true; }  theBoolean = !theBoolean; 
 theBoolean ^= true; 
如果您的variables长度超过四个字母,按键次数会减less
有几个
“明显”的方式 (对于大多数人)
 theBoolean = !theBoolean; 
“最短”的方式 (大部分时间)
 theBoolean ^= true; 
“最直观”的方式 (最不确定)
 theBoolean = theBoolean ? false : true; 
额外:切换并在方法调用中使用
 theMethod( theBoolean ^= true ); 
由于赋值运算符总是返回已经赋值的值,所以会通过按位运算符来切换值,然后返回在方法调用中使用的新赋值。
之前:
 boolean result = isresult(); if (result) { result = false; } else { result = true; } 
后:
 boolean result = isresult(); result ^= true; 
如果您使用布尔NULL值并将其视为false,请尝试以下操作:
 static public boolean toggle(Boolean aBoolean) { if (aBoolean == null) return true; else return !aBoolean; } 
如果你没有处理布尔NULL值,试试这个:
 static public boolean toggle(boolean aBoolean) { return !aBoolean; } 
这些是最干净的,因为它们显示方法签名的意图,比较容易阅读! 操作员,并可以很容易地debugging。
用法
 boolean bTrue = true boolean bFalse = false boolean bNull = null toggle(bTrue) // == false toggle(bFalse) // == true toggle(bNull) // == true 
当然,如果你使用Groovy或允许扩展方法的语言,你可以注册一个扩展,只需要:
 Boolean b = false b = b.toggle() // == true