class A { static class B { int foo(T x) {return 0;} } public static void main(String[] args) { B q = new B<>(); Func x = q::foo; x.invoke(""); } interface Func { int invoke(CharSequence x); } }