2011-08-02 21 views
0

私は、チュートリアルhereで説明されているいくつかのことを試みました:クラスのメソッドを調査しています。しかし、私がandroid.content.SharedPreferences.Editorのメソッドを調べようとしたときに、私はを持っています。原因はEditorです。実際にはクラスではありません。では、Javaリフレクションを使用してインタフェースのメソッドにアクセスするにはどうすればよいですか?前もって感謝します。ここでAndroidでのJavaのリフレクション:interfaces

はコードです:

String sClassName = "android.content.SharedPreferences.Editor"; 
try { 
    Class classToInvestigate = Class.forName(sClassName); 

    // Dynamically do stuff with this class 
    // List constructors, fields, methods, etc. 

} catch (ClassNotFoundException e) { 
    // Class not found! 
} catch (Exception e) { 
    // Unknown exception 
} 
+1

は私たちにあなたが使用しようとしているコードを表示? – Bozho

+0

'class classToInvestigate = Editor.class;'を試すことができますか?おそらくクラスを参照していないと、プロジェクトで直接利用できなくなることがあります。 Androidがコードのパッケージングの仕組みをどのようにコンパイルしたのか分かりません... – helios

答えて

0

あなたはリフレクションを使ってクラスを探索するのと同じ方法で、インターフェイスを探索することができるはずです。 isInterfacetrueを返すという唯一の違いがあります。

あなたのプログラムでJDKまたはAndroid SDKを使用している場合は、コードを投稿してください。と入力してください。はなぜClassNotFoundExceptionになるのか説明できます。

よろしく、 ステファン

+0

あなたの答えをありがとう!私はコードで自分の投稿を編集しました。 – Egor

+0

Android sdkまたはjava sdkを使用してこれを実行しますか?このクラスはアンドロイドの一部であるため、アンドロイドを使用して検出され、java sdkを使用して検出されません。 – Snicolas

0

は、クラス名を、次の試してみてください、

android.app.ContextImpl $ SharedPreferencesImpl $ EditorImpl

関連する問題