我可以自己写,但我猜这是非常标准的.是否有标准的java类来执行此操作?我知道这必须是一个运行时功能,因为我的代码的各个部分可以设置它而不知道彼此在做什么 - 我只是希望如果发生这种情况会大声失败.
public class MutableOnce<Type T> {
private T _t;
private boolean _isSet = false;
public void set(T t) {
if(_isSet) {
//raise exception
}
_t = t;
public T get() { return _t; }
}
Run Code Online (Sandbox Code Playgroud)
您不想简单地使对象不可变的任何原因?这将使类更容易使用,尤其是在并发环境中(示例中的类不是线程安全的).
public class Immutable<T> {
private final T _t;
public void Immutable(T t) {
_t = t;
}
public T get() { return _t; } //you may want to return a copy of _t if _t is mutable
}
Run Code Online (Sandbox Code Playgroud)