import java.util.*; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; class DemoApplicationTests { void test2() { var a = Stream.of("") .map(s -> s.substring(1)) .map(s -> s.length()) .map(l1 -> String.valueOf(l1)).collect(Collectors.toList()); Stream.of("") .map(l -> a.get(l.length())) .map(s -> new DemoApplicationTests()).findAny() .map(d -> d.foo(this::bar)); } void foo(Consumer c) {} void foo(Function c) {} void bar(long j) {} void bar(int i) {} }