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?它不应该给我一个错误吗?
混乱是因为自动装箱。代码应该读作
Boolean test = new Boolean(false);
test = new Boolean(true);
Run Code Online (Sandbox Code Playgroud)
因此,您将引用测试更改为指向一个新的布尔对象(其初始值为 true)。原始布尔对象未更新。事实上,没有办法更新它的实际值。因此它是不可变的。
| 归档时间: |
|
| 查看次数: |
2102 次 |
| 最近记录: |