Отражение Java в Android: интерфейсы - PullRequest
0 голосов
/ 02 августа 2011

Я пробовал некоторые вещи, описанные в руководстве здесь : исследование методов класса.Но когда я попытался исследовать методы android.content.SharedPreferences.Editor, я получил ClassNotFoundException, потому что Editor на самом деле интерфейс, а не класс.Итак, как я могу получить доступ к методам интерфейса, используя отражение Java?Заранее спасибо.

Вот код:

    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  
}  

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Попробуйте следующее имя класса,

android.app.ContextImpl $ SharedPreferencesImpl $ EditorImpl

0 голосов
/ 02 августа 2011

Вы должны быть в состоянии исследовать интерфейс так же, как вы изучали бы класс с использованием отражения.Единственное отличие состоит в том, что isInterface вернет true.

Не могли бы вы опубликовать некоторый код и уточните, если вы используете JDK или Android SDK в своей программе, как , это можетобъясните, почему вы получаете ClassNotFoundException.

С уважением, Стефан

...