メソッドが見つからない場合に例外をスローしない getMethod または他のメソッドを呼び出す Java リフレクションの方法はありますか? 代わりにnullを返すだけですか?
予想される例外を減らすためにアプリケーションをパススルーしていますが、これは候補のようです。
メソッドが見つからない場合に例外をスローしない getMethod または他のメソッドを呼び出す Java リフレクションの方法はありますか? 代わりにnullを返すだけですか?
予想される例外を減らすためにアプリケーションをパススルーしていますが、これは候補のようです。
getMethods() を繰り返し処理し、null
一致が見つからない場合は戻ることができます。
アプリケーションのニーズによっては、getMethods()を使用するのが適切かもしれません。クラスで定義されているすべてのメソッドの配列を返します。返されたメソッドを名前でマップするか、好きなように使用できます。ただし、これは、必要なメソッドでのみ getMethod() を呼び出し、最終的に例外をキャッチするよりも遅くなる可能性があることに注意してください。この場合、一部のキャッシュが役立ちます。
この記事をまだ読んでいない場合は、チェックしてください。
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
}