如果布尔值在 Java 中是不可变的,我该如何更改这个布尔值?

Oma*_*r N 2 boolean immutability

下面的代码打印为真。

public static void main(String[] args) {

        Boolean test = false;
        test = true;
        System.out.println(test);
Run Code Online (Sandbox Code Playgroud)

如果布尔值在 Java 中是不可变的,我如何将测试从 false 更改为 true?它不应该给我一个错误吗?

Dee*_*akV 6

混乱是因为自动装箱。代码应该

Boolean test = new Boolean(false);
test = new Boolean(true);
Run Code Online (Sandbox Code Playgroud)

因此,您将引用测试更改为指向一个新的布尔对象(其初始值为 true)。原始布尔对象未更新。事实上,没有办法更新它的实际值。因此它是不可变的。