0

古いバージョンとの互換性を維持しながら、Android SDK v9 でメソッドを呼び出す必要があります。

Android 開発者ブログでは、リフレクションまたはラッパー クラスの使用を推奨していますが、それは本当に必要なのでしょうか? なぜ私はこれを行うことができないのですか?

if (Build.VERSION.SDK_INT >= 9)
    callNewMethod();

私はSDK 9で構築しているので、Javaランタイムリンケージのためにこれが機能するように思えます.このアプローチに何か問題はありますか?

前もって感謝します...

4

2 に答える 2

1

必ずしもより良い答えではありませんが、そこで行っているチェックは、OS/ROM のビルダーがその値を正しく設定していることを前提としています。正しく設定されていない場合、実際には存在しない SDK 9 のメソッドにアクセスしようとする可能性があります。リフレクションを使用することは、存在しないメソッドを呼び出そうとすることによって実行時エラーが発生しないことを 100% 確実にする唯一の方法です。

于 2012-07-24T18:41:21.853 に答える
1

いいえ、まったくありません。実際、幅広い API レベルを対象としたアプリケーションを開発する際のベスト アプローチとして推奨されています。

クラスの内容とメソッドの存在がわからない場合は、リフレクション クラスが最も堅実な方法です。しかし、Android では、何がサポートされ、何がサポートされていないかがわかります。

その結果、私はあなたが与えたブログが好きではありませんでした:p

于 2012-07-24T18:42:20.700 に答える