class Tmp { interface Function { R apply(T t); } interface Foo { Foo map1(Function f); Foo map2(Function f); } public static void main(String[] args) { Foo x = null; Foo y1 = x.map1(i -> ""); Foo y2 = x.map2(i -> ""); } }