import java.util.function.Supplier; class LazyVal { public LazyVal(Supplier supplier) {} public LazyVal(T value) {} } class Sample { String getString() { return ""; } public void usage() { new LazyVal<>(() -> new Sample().getString()); } }