Java doc of MethodHandle says that private method should invoke via findSpecial.But in the following example I am able to invoke it via findVirtual.
Could somebody please explain what am I missing here?
import java.lang.invoke.MethodHandles;import java.lang.invoke.*;import java.lang.invoke.MethodType;public class PrivateClassMethodLookupTest{ public static void main(String[] args) throws Throwable{ new PrivateClassMethodLookupTest().m(); MethodHandle mh = MethodHandles.lookup() .findVirtual(PrivateClassMethodLookupTest.class, "m", MethodType.methodType(void.class)); mh.invoke(new PrivateClassMethodLookupTest()); } private void m() { System.out.println("in m");}}