0
私は、MethodHandlesを効果的に使用する方法を私の頭脳で包んでいます。デバッグ中にMethodHandlesを実行しようとしています。 ここに私の問題を説明するいくつかのコード例があります。MethodHandleはデバッグ中に呼び出されます
public class MetricianTest {
public static void main(String[] args) throws Throwable {
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final MethodType mt = MethodType.methodType(String.class);
final MethodHandle mh = lookup.findVirtual(MHTestClass.class, "testMethod", mt);
System.out.println(mh.invoke(new MHTestClass()));
}
public static class MHTestClass {
public int testField = 1;
public MHTestClass() {
}
public String testMethod() {
return "method-value";
}
}
}
コードが正常に実行されているときに動作しますが、IntelliJのデバッガを停止し、MethodHandleがにUnsupportedOperationExceptionをスロー起動しようとします。 Javadocsを見ると、MethodHandlesをリフレクションで呼び出すことはできませんが、なぜ私のプログラムでMethodHandleの呼び出しをデバッグするのか、またはその理由を理解できていないか分かりません。どんな洞察力も大いにありがとう!
恐ろしい!早速のお返事ありがとうございます! – nickrobison