MethodHandler这个类有点特殊
首先,任何一个方法能够具有多样化的声明(signature polymorphic)必须满足以下条件:
1)它声明为 java.lang.invoke.MethodHandler类
2)参数格式只能为 Object[]
3)有一个Object类型的返回值
4)设置了ACC_VARARGS和ACC_NATIVE标识。
java虚拟机赋予指令 invokevirtual来调用方法句柄(method handle)。
方法句柄 是一种特殊的类型,可以直接通过引用来执行方法、或者构造函数、或全局变量、或低位的操作,以及方法的参数或者返回值。
因此,MethodHandler这个类是java反射机制的主要的类,在JVM内部,通过指令invokevirtual来激活方法句柄,从而实现方法句柄
通过引用获取类实例以及类和方法信息的一个方式。