在Java中有比简单的if-else更好的方法来否定布尔值吗?

if (theBoolean) {
    theBoolean = false;
} else {
    theBoolean = true;
}

当前回答

如果你做的不是特别专业,你可以使用Util类。Ex,来自项目的一个用于类的util类。

public class Util {


public Util() {}
public boolean flip(boolean bool) { return !bool; }
public void sop(String str) { System.out.println(str); }

}

然后创建一个Util对象 Util u = new Util(); 准备好返回系统的东西,完毕。Println (u.flip(bool));

如果你要反复使用相同的东西,使用一个方法,特别是在跨项目时,创建一个Util类。然而,不知道行业标准是什么。(有经验的程序员可以随意纠正我)

其他回答

有几个

“显而易见”的方式(对大多数人来说)

theBoolean = !theBoolean;

“最短”的路(大多数时候)

theBoolean ^= true;

“最直观”的方式(最不确定)

theBoolean = theBoolean ? false : true;

额外:在方法调用中切换和使用

theMethod( theBoolean ^= true );

由于赋值操作符总是返回已赋值的值,因此这将通过位操作符切换值,然后返回新赋值以用于方法调用。

theBoolean = !theBoolean;
Boolean original = null; // = Boolean.FALSE; // = Boolean.TRUE;
Boolean inverse = original == null ? null : !original;

这个答案出现在搜索“java反转布尔函数”时。下面的示例将防止某些静态分析工具由于分支逻辑而导致构建失败。这是有用的,如果你需要反转一个布尔值,还没有建立全面的单元测试;)

Boolean.valueOf(aBool).equals(false)

或者:

Boolean.FALSE.equals(aBool)

or

Boolean.FALSE::equals

类BooleanUtils支持布尔值的否定。您可以在commons-lang:commons-lang中找到这个类

BooleanUtils.negate(theBoolean)