import java.util.concurrent.Callable; class Test { public void test() { Foo f = new Foo<>(() -> "this doesn't compile"); } public class Foo { public Foo(Callable supplier) { } public Foo(T value) { } } }