Javaで怠惰なサプライヤを実装するための正しいパラダイムまたはユーティリティクラス(既存のクラスを見つけることができないようです)は何ですか?
計算の1回/キャッシュの後での動作を処理し、計算の動作を個別に指定できるようにするものが必要です。これにはおそらくエラーがあることはわかっていますが、正しいセマンティクスがあります。
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();
}