package p; class TestInlineMethodReference1 { private Object fun1() { final FI fi = this::m; Object fi1 = fi; // [1] Object fi2; fi2 = fi; // [2] Object[] a = new Object[] {fi, fi}; // [3] Object[][] b = new Object[][] {{fi, fi}, {fi}}; // [4] Object[] c = {fi, fi}; // [5] Object[][] d = {{fi}, {fi}}; // [6] int x1 = fun2(fi); // [7] TestInlineMethodReference1 c1 = new TestInlineMethodReference1(fi); // [8] F f1 = (fi_p) -> fi; // [9] F f2 = (fi_p) -> { return fi; // [10] }; f1.bar(fi); // [11] Object fi4 = true ? fi : fi; // [12] return fi; // [13] } private int fun2(Object fi) {return 0;} public TestInlineMethodReference1(Object fi) { } int m(int x) { return x++; } } @FunctionalInterface interface FI { int foo(int x); } @FunctionalInterface interface F { Object bar(Object fi); }