在 Java 中实现惰性供应商的正确范例或实用程序类(似乎找不到预先存在的类)是什么?
我希望有一些东西可以处理一次计算/稍后缓存的行为,并允许我独立指定计算行为。我知道这可能有一个错误,但它具有正确的语义:
abstract public class LazySupplier<T> implements Supplier<T>
{
private volatile T t;
final private Object lock = new Object();
final public T get() {
if (t == null)
{
synchronized(lock)
{
if (t == null)
t = compute();
}
}
return t;
}
abstract protected T compute();
}