java7新特性MethodHandle学习

/**
 * @description:
 * @author: Candy
 * @date: 2022-04-28 22:43
 **/
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 {
    //相当于创建了MethodHandle工厂类
    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());
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值