private T getInternal() { T result = instance; if (null == result) { instance = result = creation.call(); } return result; }
private T getInternalSync() { T result = instance; if (null == result) { synchronized (this) { result = instance; if (null == result) { instance = result = creation.call(); } } } return result; }