我有一个成员变量,在类中我想确保在构造函数中设置后没有任何更改.所以,它看起来像这样:
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
}
....
}
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是看到我可以将final修饰符添加到变量中,但编译器抱怨为最终字段赋值.有可能做到这一点吗?
Mar*_*inK 14
编译器抱怨(在构造函数中),因为您已经通过编写提供了初始化
private String myVar = null;
Run Code Online (Sandbox Code Playgroud)
删除' = null'部分.final在构造函数中添加并赋值.
public class MyClass
{
private final String myVar;
public MyClass(DataObj dataObj)
{
myVar = dataObj.getFinalVarValue(); // the only assignment/init happens here.
}
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |