0

メソッドで呼び出しを使用するにはどうcompare(T o1, T o2) すればよいですか

4

1 に答える 1

2

Aubin が指摘したように、コンパレータは非常に多くの回数呼び出されます。コンパレーターでゆっくりとした反射を使用することは、壮大で輝かしい方法での自殺のようです。私はそれをしなければならないことを想像することはできません(あなたができないリンゴとオレンジを比較するべきではありません。リンゴしか持っていない場合は、それらを比較する方法を既に知っています)。

なぜこれをやりたいのかわかりません。これまでに作成したコードを投稿していただければ、これはより明確になり、より良いお手伝いができます!

ただし、リフレクションを通じて呼び出されたメソッドによってスローされた例外をキャッチする方法に関する質問に答えるには:

Method.invoke()の API ドキュメントを見てください。

InvocationTargetException呼び出されたメソッドが例外をスローして終了したときにをスローするように明確に述べています。

InvocationTargetException - 基礎となるメソッドが例外をスローした場合。

を使用しThrowable.getCause()て元の例外を取得すると、次のようになります。

try {
    myMethod.invoke(myArgs...);
} catch(InvocationTargetException e) {
    Throwable myOriginalException = e.getCause();
}
于 2012-11-10T10:20:26.287 に答える