如何检查两个布尔值是否相等?

7

我需要一个方法,可以在junit的assertTrue()方法内调用,该方法比较两个布尔值是否相等,并返回一个布尔值。例如,像这样:

boolean isEqual = Boolean.equals(bool1, bool2);

如果它们不相等,应返回false;如果它们相等,则返回true。我已经查看了Boolean类,但唯一接近的是Boolean.compare(),它返回一个int值,我不能使用。

6
assertTrue(bool1 == bool2) 的意思是断言 bool1bool2 的值相等,如果不相等则会抛出异常。 - Vogel612
这真的那么简单吗!!? - user3541263
1
附加信息 - user3337714
为什么不使用assertEqualw(bool1, bool2) - Stefan Birkner
3个回答

23

== 运算符适用于布尔值。

boolean isEqual = (bool1 == bool2);

(圆括号并非必需,但有助于阅读。)


3
值得注意的是,这对于所有Java原始数据类型都成立。 - Sharon Ben Asher

1
import org.junit.Test;

import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;

public class BooleanEqualityTest {

    @Test
    public void equalBooleans() {
        boolean boolVar1 = true;
        boolean boolVar2 = true;

        assertTrue(boolVar1 == boolVar2);
        assertThat(boolVar1, is(equalTo(boolVar2)));
    }
}

0
boolean isEqual = !(bool1 ^ bool2);

按位异或(exclusive or)"^"是Java中的一个运算符,如果其操作数中的两个位不同,则提供答案'1',如果两个位相同,则异或运算符给出结果'0'。

XNOR门是数字逻辑门,其功能是Exclusive OR(XOR)门的逻辑补码。


不错,但是被接受的答案更简单。 - Marine Galantin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接