class Outer { private interface Inner { void m(); } void m(Inner i) {} } class Usage { void test(Outer outer) { outer.m(() -> {}); outer.m(this::foo); } void foo() {} }