我想知道某处是否存在“标准”类(JDK,Guava,Apache *),这有助于延迟初始化/计算模式吗?
我正在考虑这样的事情(现在让我们忽略同步):
abstract class Lazy<T> {
T instance = null;
protected T compute();
final T get() {
if (instance == null) instance = compute();
return instance;
}
}
//...
Lazy<Foo> foo = new Lazy<Foo> {
protected Foo compute() { return Foo.expensivePart(); }
}
//...
Bar bar = foo.get().getBar();
答案 0 :(得分:1)
如果我理解正确,那么Lombok将使用单个注释@Getter(lazy=true)
完成工作。
(Lombok还提供了一些非常有用的注释,例如@Delegate, @EqualsAndHashCode, @Synchronized
)。