MethodHandle 和 VarHandle 工厂方法调用。
也报告不匹配 MethodHandle 签名的 MethodHandle.invoke() 和类似方法的实参以及不匹配 VarHandle 类型的 VarHandle.set() 的实参
示例:
MethodHandle mh = MethodHandles.lookup().findVirtual(
MyClass.class, "foo", MethodType.methodType(void.class, int.class));
// 此实参应为 int 值
mh.invoke(myObj, "abc");
// 此实参应为 String.class
VarHandle vh = MethodHandles.lookup().findVarHandle(
MyClass.class, "text", int.class);
VarHandle vh = MethodHandles.lookup().findVarHandle(
MyClass.class, "text", String.class);
// 此实参应为 String 值
vh.set(myObj, 42);
2017.2 最新变化