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 の新機能です