boolean - 如果 boolean 值在 Java 中是不可变的,我如何才能改变这个 boolean 值?

标签 boolean immutability

下面的代码打印 true。

public static void main(String[] args) {

        Boolean test = false;
        test = true;
        System.out.println(test);

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

最佳答案

混淆是因为自动装箱。代码应阅读

Boolean test = new Boolean(false);
test = new Boolean(true);

因此,您正在更改 reference 测试以指向一个新的 boolean 对象(其初始值为 true)。原始 boolean 对象未被更新。事实上,没有办法更新它的实际值。因此它是不可变的。

关于boolean - 如果 boolean 值在 Java 中是不可变的,我如何才能改变这个 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41688457/

相关文章:

python - 对 IF 语句使用 OR 比较

java - 为什么整数在 Java 中是不可变的?

haskell - 在操作不可变数据结构时,Clojure assoc-in 和 Haskell 的镜头有什么区别?

c# - 是否可以通过 F# 创建第三方可变结构 "more immutable"?

python - 使用多个 boolean 列过滤 Pandas 数据框

java - Java中的 boolean 值赋值

algorithm - 使用第二个向量的分组对向量执行 boolean 运算

string - 字符串的不变性和并发性

haskell - 用于 CLI 应用程序的 Haskell 中的 IO 状态

ios - 防止具有 nil 可选值的开关按钮