2016-08-10 3 views
1

Für Methode:Reflection dalvik.system.DexClassLoader.findClass() NoSuchMethodException

Ldalvik/system/DexClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class;

dass DexClassLoader erbt von ClassLoader

Der folgende Aufruf Class.getMethod() mit einem NoSuchMethodException fehlschlägt:

Class.forName("dalvik.system.DexClassLoader")).getMethod("findClass",Class.forName("java.lang.String"))

Ich verstehe nicht, warum dieser Anruf fehlschlägt. Wenn mir etwas fehlt, wird die Methode vererbt und sollte zurückgegeben werden.

Antwort

1

findClass ist protected und wird daher nicht von getMethod() zurückgegeben werden. Stattdessen sollte getDeclaredMethod() verwendet werden, da es auch private und protected Zugriffsebenenmethoden zurückgibt.