ZetCode

Java Boolean 类

最后修改时间:2025 年 4 月 13 日

java.lang.Boolean 类将基本类型 boolean 的值包装在一个对象中。 这个包装类提供了在布尔值和字符串之间进行转换的方法,以及其他实用程序。

Boolean 对象包含一个类型为 boolean 的单个字段。 此类提供常量 TRUEFALSE,分别表示基本布尔值。 它还包含字符串转换和比较操作的方法。

Boolean 类方法

Boolean 类提供了几个静态和实例方法来处理布尔值。 关键方法包括 valueOfparseBooleanbooleanValuetoStringcompare

创建 Boolean 对象

可以使用 Boolean.valueOf 方法创建 Boolean 对象,该方法将基本布尔值或字符串表示形式转换为 Boolean 类的实例。 此方法通过重用 truefalse 的缓存实例而不是每次都创建新对象来确保有效的内存使用。

Main.java
void main() {

    Boolean bool1 = Boolean.valueOf(true);
    Boolean bool2 = Boolean.valueOf("true");
    Boolean bool3 = Boolean.valueOf("TRUE");
    Boolean bool4 = Boolean.valueOf("false");

    System.out.println("bool1: " + bool1);
    System.out.println("bool2: " + bool2);
    System.out.println("bool3: " + bool3);
    System.out.println("bool4: " + bool4);
}

此示例演示了如何使用 Boolean.valueOf 初始化 Boolean 对象。 传递字符串参数时,该方法不区分大小写地解释 "true",这意味着 "true""TRUE" 都计算为 true。 任何其他字符串,包括 "false",都会导致 false

parseBoolean 方法

parseBoolean 方法将字符串参数解析为布尔基元。 如果字符串等于 "true"(不区分大小写),则返回 true,否则返回 false

Main.java
void main() {

    boolean b1 = Boolean.parseBoolean("True");
    boolean b2 = Boolean.parseBoolean("true");
    boolean b3 = Boolean.parseBoolean("TRUE");
    boolean b4 = Boolean.parseBoolean("false");
    boolean b5 = Boolean.parseBoolean("FALSE");
    boolean b6 = Boolean.parseBoolean("yes");
    boolean b7 = Boolean.parseBoolean("1");
    
    System.out.println("b1: " + b1);
    System.out.println("b2: " + b2);
    System.out.println("b3: " + b3);
    System.out.println("b4: " + b4);
    System.out.println("b5: " + b5);
    System.out.println("b6: " + b6);
    System.out.println("b7: " + b7);
}

此示例显示了 parseBoolean 如何将字符串转换为布尔值。 只有完全匹配的字符串 "true"(不区分大小写)才会返回 true。 所有其他字符串,包括 "yes" 和 "1",都返回 false。

booleanValue 和 toString 方法

booleanValue 方法返回 Boolean 对象的原始布尔值。 toString 方法将布尔值转换为它们的字符串表示形式。

Main.java
void main() {

    Boolean boolObj1 = Boolean.TRUE;
    Boolean boolObj2 = Boolean.FALSE;
    
    // Using booleanValue()
    boolean prim1 = boolObj1.booleanValue();
    boolean prim2 = boolObj2.booleanValue();
    
    // Using toString()
    String str1 = boolObj1.toString();
    String str2 = boolObj2.toString();
    String str3 = Boolean.toString(true);
    String str4 = Boolean.toString(false);
    
    System.out.println("prim1: " + prim1);
    System.out.println("prim2: " + prim2);
    System.out.println("str1: " + str1);
    System.out.println("str2: " + str2);
    System.out.println("str3: " + str3);
    System.out.println("str4: " + str4);
}

此示例演示了 Boolean 对象、基本布尔值和字符串之间的转换。 booleanValue 方法提取原始值,而 toString 将布尔值转换为它们的字符串等效值。

逻辑运算

Boolean 类为逻辑运算提供静态方法:logicalAndlogicalOrlogicalXor。 这些对布尔值执行 AND、OR 和 XOR 运算。

Main.java
void main() {

    boolean a = true;
    boolean b = false;
    
    boolean andResult = Boolean.logicalAnd(a, b);
    boolean orResult = Boolean.logicalOr(a, b);
    boolean xorResult = Boolean.logicalXor(a, b);
    
    System.out.println("a AND b: " + andResult);
    System.out.println("a OR b: " + orResult);
    System.out.println("a XOR b: " + xorResult);
    
    // More complex expressions
    boolean expr1 = Boolean.logicalAnd(
        Boolean.logicalOr(a, b),
        Boolean.logicalXor(a, b)
    );
    
    System.out.println("(a OR b) AND (a XOR b): " + expr1);
}

此示例显示了 Boolean 类提供的逻辑运算。 这些方法等效于使用 &&||^ 运算符,但在函数式编程上下文中很有用。

比较方法

Boolean 类提供 comparecompareTo 方法来比较布尔值。 这些方法对于排序和排序操作很有用。

Main.java
void main() {
    
    // Using compare (static method)
    int result1 = Boolean.compare(true, false);
    int result2 = Boolean.compare(false, true);
    int result3 = Boolean.compare(true, true);
    
    // Using compareTo (instance method)
    Boolean bool1 = Boolean.TRUE;
    Boolean bool2 = Boolean.FALSE;
    int result4 = bool1.compareTo(bool2);
    int result5 = bool2.compareTo(bool1);
    int result6 = bool1.compareTo(bool1);
    
    System.out.println("compare(true, false): " + result1);
    System.out.println("compare(false, true): " + result2);
    System.out.println("compare(true, true): " + result3);
    System.out.println("TRUE.compareTo(FALSE): " + result4);
    System.out.println("FALSE.compareTo(TRUE): " + result5);
    System.out.println("TRUE.compareTo(TRUE): " + result6);
}

此示例演示了布尔比较。 当第一个参数为 true 且第二个参数为 false 时,这些方法返回正值;对于相反的情况,返回负值;当两个值相等时,返回零。

在集合中使用 Boolean

Boolean 对象通常在 Java 集合中使用,因为基本类型不能直接存储。 此示例显示了 Boolean 在 ArrayList 和 HashMap 中的用法。

Main.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

void main() {

    // Using Boolean in a List
    List<Boolean> boolList = new ArrayList<>();
    boolList.add(true);
    boolList.add(Boolean.FALSE);
    boolList.add(Boolean.parseBoolean("true"));
    
    System.out.println("Boolean List:");
    for (Boolean b : boolList) {
        System.out.println(b);
    }
    
    // Using Boolean in a Map
    Map<String, Boolean> settings = new HashMap<>();
    settings.put("autoSave", true);
    settings.put("darkMode", false);
    settings.put("notifications", Boolean.valueOf("TRUE"));
    
    System.out.println("\nSettings Map:");
    for (Map.Entry<String, Boolean> entry : settings.entrySet()) {
        System.out.println(entry.getKey() + ": " + entry.getValue());
    }
}

此示例演示了将 Boolean 对象存储在集合中。 ArrayList 存储多个 Boolean 值,而 HashMap 将它们用作与字符串键关联的值。 自动装箱会在原始形式和对象形式之间自动转换。

来源

Java Boolean 类文档

在本文中,我们介绍了 Java Boolean 类的所有主要方面,并提供了实际示例。 了解这些方法对于在面向对象的上下文和集合中使用布尔值至关重要。

作者

我的名字是 Jan Bodnar,我是一位敬业的程序员,在该领域拥有多年的经验。 我于 2007 年开始撰写编程文章,此后撰写了 1,400 多篇文章和八本电子书。 凭借八年以上的教学经验,我致力于分享我的知识并帮助其他人掌握编程概念。

列出所有Java教程