浏览代码

add ZillaRuntime.lazyGet

tags/2.0.1
Jonathan Cobb 4 年前
父节点
当前提交
a39467dbcd
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. +19
    -0
      src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java

+ 19
- 0
src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java 查看文件

@@ -457,4 +457,23 @@ public class ZillaRuntime {
}
}
}

public interface LazyGet<T> { T init();}

public static <T> T lazyGet(AtomicReference<T> ref, LazyGet<T> init, LazyGet<T> error) {
if (ref.get() == null) {
//noinspection SynchronizationOnLocalVariableOrMethodParameter
synchronized (ref) {
if (ref.get() == null) {
try {
ref.set(init.init());
} catch (Exception e) {
ref.set(error.init());
}
}
}
}
return ref.get();
}

}

正在加载...
取消
保存