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");}
}