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 最新变化