どのメソッドまたはフィールドにも一致しない 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 の新機能です