流行的/标准的Java库中是否存在一个懒惰计算值的类?

时间:2011-09-01 10:07:15

标签: java

我想知道某处是否存在“标准”类(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();

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么Lombok将使用单个注释@Getter(lazy=true)完成工作。

(Lombok还提供了一些非常有用的注释,例如@Delegate, @EqualsAndHashCode, @Synchronized)。