interface MyFunctionalInterface {
    void invokeMethodReference(int a);
}

class MethodSupplier {
    void m(int a) { System.out.println(a); }
}

class MethodInvoker extends MethodSupplier {
    public void doInvoke() {
        MyFunctionalInterface instance = null;
        instance = super::<Integer>m;
        instance.invokeMethodReference(1);
    }
    public static void invoke() {
        new MethodInvoker().doInvoke();
    }
}

public class Test {
    public static void main(String argv[]) throws Throwable {
        Class.forName("MethodInvoker").getMethod("invoke").invoke(null);
   }
}

