Boolean 比较相等

Boolean 比较相等

在Java中,Boolean类提供了多种方法来比较布尔值:equals()和booleanValue()等。

equals() 判断相等

当且仅当参数不是null,而是一个与此对象一样,都表示同一个Boolean值的boolean对象时,才返回true。

✍方法声明

public boolean equals(Object obj)

  • 📥入参:obj为要比较的对象。
  • 🪐返回值:当且仅当参数不是null,而是一个与此对象一样,都表示同一个Boolean值的boolean对象时,才返回true,其他情况返回 false。
    public static void main(String[] args) {
        Boolean bool1 = Boolean.TRUE;
        Boolean bool2 = new Boolean(true);
        Boolean bool3 = new Boolean("false");
        boolean res1 = bool1.equals(bool2);
        System.out.println(res1);
        boolean res2 = bool2.equals(bool3);
        System.out.println(res2);
        System.out.println(bool1 == bool2);
        System.out.println(bool1.equals(null));
        System.out.println(bool3.equals(null));
    }

具有相同Boolean 值的 bool1 与 bool2 通过 equals() 方法比较的,两者表示不同的对象,因此 == 结果不相等。

true
false
false
false
false

booleanValue()方法 获取boolean值

booleanValue()方法返回封装在Boolean对象中的原始boolean值。使用此方法可以直接获取布尔值。

✍方法声明

public boolean booleanValue();

  • 🪐返回值:转换为boolean类型后该对象表示的数值。
    public static void main(String[] args) {
        Boolean bool = Boolean.TRUE;
        boolean b = bool.booleanValue();

        Boolean bool2 = new Boolean("true");
        boolean c = bool2.booleanValue();
        System.out.println(b == c);
    }
true

compareTo() 比较布尔值

将此Boolean实例与其他实例进行比较。Boolean类并没有实现compareTo()方法。在Java中,Comparable接口的compareTo()方法通常用于比较对象的自然顺序,而Boolean类并没有定义这样的顺序。一般,开发中使用Boolean类提供的booleanValue()方法来获取布尔值,而不是通过compareTo()方法进行比较。

✍方法声明

public int compareTo(Boolean b)

  • 📥入参:b为要进行比较的Boolean实例。
  • 🪐返回值:如果对象与参数表示的布尔值相同,则返回零;如果此对象表示true,参数表示false,则返回一个正值:如果此对象表示false,参数表示true,则返回一个负值。
  • 🐛抛出异常NullPointerExceptio:如果参数为null。

下面代码将创建3个Boolean对象,应用compareToO方法进行比较,将比较结果赋给int型变量并输出结果。

    public static void main(String[] args) {
        Boolean bool = new Boolean(true);
        Boolean bool2 = new Boolean(false);
        Boolean bool3 = Boolean.TRUE;
        int res1 = bool.compareTo(bool2);
        int res2 = bool2.compareTo(bool3);
        int res3 = bool.compareTo(bool3);
        System.out.println(res1);
        System.out.println(res2);
        System.out.println(res3);
        int i = bool2.compareTo(null);
    }
1
-1
0
Exception in thread “main” java.lang.NullPointerException

📝总结

在Java中比较Boolean对象时,应该根据比较的目的选择正确的方法:

  • 如果你想要比较两个Boolean对象是否表示相同的布尔值,应该使用equals()方法。
  • 如果你需要获取Boolean对象的原始boolean值进行比较,应该使用booleanValue()方法。
  • 避免使用==操作符来比较Boolean对象的值,除非你确信你在比较的是原始boolean值而不是对象引用。

通过使用这些方法,我们可以准确地比较布尔值,并避免由于对象引用或字符串表示的混淆而导致的错误。

转载请注明出处:码谱记录 » Boolean 比较相等
标签: