MethodHandle
来源:互联网 发布:udp自定义端口号 编辑:程序博客网 时间:2024/05/17 20:35
public class Person {private String name ;private Integer score ;public Person(){}public Person(String name , Integer score) { this.name = name ; this.score = score ;}public String gao(Integer a , Integer b){return "say=" + (a+b) ;}public String ri(){return "sayHello to " + name + ". score = " + score ; }}
import java.lang.invoke.MethodHandle;import java.lang.invoke.MethodHandles;import java.lang.invoke.MethodType;public class MethodHandleTest { public MethodHandle getHandler() { MethodHandle mh = null; /*第一个参数为返回值,陆续为入参*/ MethodType mt = MethodType.methodType(String.class, Integer.class, Integer.class); MethodHandles.Lookup lk = MethodHandles.lookup(); try { /*第一个参数为所调用方法所在的类.class , 第二个参数为方法名 , 第三个参数为MethodType*/ mh = lk.findVirtual(Person.class, "gao", mt); } catch (Throwable e) { e.printStackTrace(); } return mh; } public MethodHandle getHandler2() { MethodHandle mh = null; /*不需要入参则不需要写*/ MethodType mt = MethodType.methodType(String.class) ; MethodHandles.Lookup lk = MethodHandles.lookup(); try { mh = lk.findVirtual(Person.class, "ri", mt); } catch (Throwable e) { e.printStackTrace(); } return mh; } public static void main(String[] args) throws Throwable { MethodHandle mh = new MethodHandleTest().getHandler(); String result = (String) mh.invokeExact(new Person() , Integer.valueOf(1) , Integer.valueOf(2)) ; System.out.println(result) ; mh = new MethodHandleTest().getHandler2(); result = (String) mh.invokeExact(new Person("laoli" , 100)) ; System.out.println(result) ; }}
say=3
sayHello to laoli. score = 100
0 0
- MethodHandle
- MethodHandle详解
- java7 MethodHandle学习笔记
- MethodHandle性能测试
- MethodHandle(方法句柄)
- java7 MethodHandle学习笔记
- java MethodHandle解析
- java MethodHandle解析
- java7 MethodHandle学习笔记
- MethodHandle VS Method, Java反射及MethodHandle性能测试
- Delegates in JAVA with MethodHandle
- MethodHandle与反射Method区别,invokedynamic指令
- jdk7之java.lang.invoke.MethodHandle
- java/lang/NoClassDefFoundError: java/lang/invoke/MethodHandle的解决办法
- java methodhandle--反射升级版方法句柄demo
- 通过代码简单介绍JDK 7的MethodHandle,并与.NET的委托对比
- 排序算法2--简单选择排序、堆排序
- Maven下SSH框架运行环境的配置
- foreach循环
- poj 3071 Football (概率与期望DP)
- KVC和KVO的使用
- MethodHandle
- Mybatis SqlMapConfig.xml全局配置文件
- 文件的生成操作,属性如何设置(内容/嵌入资源等)
- JavaScript校验Number(4,1)格式的数字
- C++第二次实验博客
- Scala基于Akka的Remote Actor实现的简单RPC
- tomcat 下载及配置
- cocos JniHelper调用java时总是报 Failed to find static method id of
- struts学习(七)—拦截器概述