public class TestStudent {
public void test(String str){
System.out.println(str);
}
public static void testStatic(String str){
System.out.println(str);
}
private static void testPrivate(String str){
System.out.println(str);
}
private String testReturn(){
System.out.println("赵六");
return "";
}
public static void main(String[] args) throws Throwable {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodHandle mt = lookup.findVirtual(TestStudent.class, "test", MethodType.methodType(void.class, String.class));
mt.invoke(new TestStudent(),"张三");
MethodHandle m = lookup.findStatic(TestStudent.class, "testStatic", MethodType.methodType(void.class, String.class));
m.invoke("李四");
MethodHandle testPrivate = lookup.findStatic(TestStudent.class, "testPrivate", MethodType.methodType(void.class, String.class));
testPrivate.invoke("王五");
MethodHandle testReturn = lookup.findVirtual(TestStudent.class, "testReturn", MethodType.methodType(String.class));
testReturn.invoke(new TestStudent());
}
}