class IntStream { private void foo(IntStream s) { s.map(i -> 1 << i); s.map(i -> 1); s.map(i -> i); } public static void main(String[] args) { new IntStream().foo(null); } private IntStream map(IntUnaryOperator mapper) { System.out.println(mapper); return null; } private IntStream map(ObjIntFunction mapper) { System.out.println(mapper); return null; } } interface IntUnaryOperator { public int applyAsInt(int operand); } interface ObjIntFunction { public T apply(int i); }