说我有一个类的引用,它是最终的像:
public final Mycalss ref;
Run Code Online (Sandbox Code Playgroud)
和MyClass有几个属性(不是最终的).现在,当我像这样构造MyClass对象时:
ref = new MyClass( some arguments);
Run Code Online (Sandbox Code Playgroud)
这是否意味着其他线程可以安全地查看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"):
Run Code Online (Sandbox Code Playgroud)
有关线程和最终的答案,请参阅@Erwin Bolwidt 答案。
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |