java.lang.invoke       

java.lang.invoke

JDK1.7之后,加入的java.lang.invoke包,该包提供了一种新的确定动态目标方法的机制,Method Handle. Method Handle使得Java拥有了类似函数指针或委托的方法别名的工具。

MethodHandle方法 字节码 描述
findStatic invokestatic 调用静态方法
findSpecial invokespecial 调用实例构造方法,私有方法,父类方法。
findVirtual invokevirtual 调用所有的虚方法
findVirtual invokeinterface 调用接口方法,会在运行时再确定一个实现此接口的对象。

MethodHandle用于模拟invokespecial时,必须遵守跟Java字节码里的invokespecial指令相同的限制——它只能调用到传给findSpecial()方法的最后一个参数(“specialCaller”)的直接父类的版本