[英]Java - Any way to make variable unmodifiable after being set in the constructor?
我有一個成員變量,在類中我想確保在構造函數中設置后沒有任何更改。 所以,它看起來像這樣:
public class MyClass
{
private String myVar = null;
public MyClass(DataObj dataObj)
{
myVar = dataObj.getFinalVarValue();
//at this point I don't want anything to be able change the value of myVar
}
....
}
我的第一個想法是看到我可以將final
修飾符添加到變量中,但編譯器抱怨為最終字段賦值。 有可能做到這一點嗎?
編譯器抱怨(在構造函數中),因為您已經通過編寫提供了初始化
private String myVar = null;
刪除' = null
'部分。 添加final
並在構造函數中指定值。
public class MyClass
{
private final String myVar;
public MyClass(DataObj dataObj)
{
myVar = dataObj.getFinalVarValue(); // the only assignment/init happens here.
}
....
}
將其設為private
,然后不包含setter。 只要你在類方法中永遠不改變它,它就是不可變的。
字符串對象已經是不可變的。 因此添加私有最終修改器就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.