【发布时间】:2014-05-28 20:54:21
【问题描述】:
我有类似的东西:
(SomeClass)
public static final float[][][] values = {...};
public float[][][] variable = values;
所以,我创建了这个类的一个新实例,并将 values 传递给这个类的一个 public 成员,就像我在上面所做的那样。
问题是,当我现在使用 variable 并对其进行更改时,SomeClass 的所有实例都会更改它。
final我想声明后不能修改?
那么为什么variable 不像values 的副本,而是像static 一样被修改,但不是 final 变量?
【问题讨论】:
-
final表示您无法重新分配变量。这并不意味着变量引用的对象是不可变的。此外,赋值不会创建对象的副本。 -
@user2357112,好的。 Braj,谢谢,要读这个。 :)
标签: java class variables static final