import java.util.function.*; class MyTest { T foo(T t) { return t; } T foo(Supplier t) { return t.get(); } T foo(IntSupplier t) { return null; } static K bar() { return null; } void m(int i) { String s = foo(switch (i) {default -> "str";}); String s1 = foo(switch (i) {case 1 -> new Object(); default -> "str";}); String s2 = foo(() -> switch (i) { default -> "str"; }); String s3 = foo(() -> switch (i) {default -> bar();}); } }