/**
* Created by matthewherod on 01/08/2017.
*/
public class Lazily<T> {
private final LazyInit<T> initLazily;
public T instance;
public Lazily(final LazyInit<T> initLazily) {
this.initLazily = initLazily;
}
public T get() {
if (this.instance == null) {
synchronized (Lazily.class) {
if (this.instance == null) {
this.instance = this.initLazily.init();
}
}
}
return this.instance;
}
public interface LazyInit<T> {
T init();
}
}