import java.util.function.Supplier; class Foo { private final Singleton singletonB = new Singleton<>(() -> f()); static B f() { return null; } } interface B { String getData(); } class Singleton { public Singleton(Supplier supplier) { } public Singleton(T instance) { } }