2

メソッドが見つからない場合に例外をスローしない getMethod または他のメソッドを呼び出す Java リフレクションの方法はありますか? 代わりにnullを返すだけですか?

予想される例外を減らすためにアプリケーションをパススルーしていますが、これは候補のようです。

4

3 に答える 3

3

getMethods() を繰り返し処理し、null一致が見つからない場合は戻ることができます。

于 2012-05-01T19:33:35.327 に答える
1

アプリケーションのニーズによっては、getMethods()を使用するのが適切かもしれません。クラスで定義されているすべてのメソッドの配列を返します。返されたメソッドを名前でマップするか、好きなように使用できます。ただし、これは、必要なメソッドでのみ getMethod() を呼び出し、最終的に例外をキャッチするよりも遅くなる可能性があることに注意してください。この場合、一部のキャッシュが役立ちます。

于 2012-05-01T19:37:42.363 に答える
0

この記事をまだ読んでいない場合は、チェックしてください。

Android 開発者のサイトでは、ブロックを使用してこの効果を実現することに問題はないようです。問題はないtry-catchと思います。

if-else複数の SDK 間の互換性が主な関心事である場合は、次のようにコードをブロックでラップすることにより、リフレクションをまとめて回避できる場合があります。

if (currentAPIVersion >= android.os.Build.VERSION_CODES.FROYO){
    // Do something for froyo and above versions
} else{
    // do something for phones running an SDK before froyo
}
于 2012-05-01T19:30:14.687 に答える