是否有更好的方法来否定Java中的布尔值而不是简单的if-else?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
Run Code Online (Sandbox Code Playgroud)
Aar*_*paa 513
theBoolean = !theBoolean;
Run Code Online (Sandbox Code Playgroud)
小智 158
theBoolean ^= true;
Run Code Online (Sandbox Code Playgroud)
如果您的变量超过四个字母,则击键次数减少
Lev*_*ite 30
"明显"的方式(对大多数人来说)
theBoolean = !theBoolean;
Run Code Online (Sandbox Code Playgroud)
"最短"的方式(大部分时间)
theBoolean ^= true;
Run Code Online (Sandbox Code Playgroud)
"最直观"的方式(最不确定)
theBoolean = theBoolean ? false : true;
Run Code Online (Sandbox Code Playgroud)
theMethod( theBoolean ^= true );
Run Code Online (Sandbox Code Playgroud)
由于赋值运算符始终返回已分配的内容,因此将通过按位运算符切换值,然后返回要在方法调用中使用的新分配值.
这个答案是在搜索“java invert boolean function”时出现的。下面的示例将防止某些静态分析工具由于分支逻辑而导致构建失败。如果您需要反转布尔值并且尚未构建全面的单元测试,这非常有用;)
Boolean.valueOf(aBool).equals(false)
Run Code Online (Sandbox Code Playgroud)
或者:
Boolean.FALSE.equals(aBool)
Run Code Online (Sandbox Code Playgroud)
或者
Boolean.FALSE::equals
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
142214 次 |
最近记录: |