什么是更好的java语法:if(isSomething()== false){或if(!isSomething()){

Igo*_*hin 5 java syntax coding-style

如果你看看

if (!x) {
if (x == false) {
Run Code Online (Sandbox Code Playgroud)

它看起来像!x更好,但是

if (!isSomething()) {
if (isSomething() == false) {
Run Code Online (Sandbox Code Playgroud)

你可以轻松监督!

该怎么办?有推荐吗?

Chr*_*röm 12

隐藏的第三个选项是正确命名变量和方法.

代替

if (!isDisabled()) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用

if (isEnabled()) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者如果你想检查否定:

boolean disabled = !isEnabled();
if (disabled) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

或添加两种方法:

boolean isDisabled() {
    return !isEnabled();
}
Run Code Online (Sandbox Code Playgroud)

编辑:我发现了这个问题:明确地与布尔常量进行比较是不是很糟糕,例如在Java中是否(b == false)?


McS*_*tch 7

我会坚持使用符号if (!isSomething()) {.如果您或其他人发现难以阅读,您可以随时在'!'周围添加一些空格.为了使它脱颖而出:

if ( ! isSomething()) { 要么 if ( !isSomething()) {

此外,使用以下符号可能会使多个条件语句变得势不可挡

if (isSomething() == false && isSomethingElse() == false && ..),

而它的替代方案简短而简洁.过了一会儿,自然会读到'!' 以及"not isSomething()而不是isSomethingElse()"的陈述.