最干净的方式来切换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