假设我有一些类的引用,它是最终类:
public final Mycalss ref;
并且 MyClass 有几个属性(不是最终的)。现在,当我像这样构造 MyClass 对象时:
ref = new MyClass( some arguments);
这是否意味着其他线程可以安全地看到 Myclass 的内容,因为它是最终引用的?
最佳答案
使引用final
意味着一旦您将一个对象分配给该引用,您就不能将其他对象分配给该引用。
但即使引用声明为 final
,您也可以更改同一对象的值。
喜欢:
public final Myclass ref;
ref = new Myclass();
//this is not allowed
ref = new MyClass(); //since you have already assigned an object to your final reference
//this is allowed
ref.setSomeProperty("abc"):
有关线程和最终的答案,请参阅@Erwin Bolwidt 的答案。
关于java - 构造对象时对对象的最终引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30321307/