Bonjour,
Mon but et d'invoquer la method B.OnRun() par réflexion sachant que les 2 class sont dans des jar.
ce code m'appelle la méthode A.OnRun() et non B.OnRun()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class A extends B { protected void OnRun() { } } public abstract class B { protected void OnRun() { } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Class< ? > cClass = clClassLoader.loadClass( "test.A" ); Object oObject = cClass.newInstance(); Method mOnRun = GetDeclaredMethods( oObject.getSuperclass(), "OnRun" ); mOnRun.invoke( oObject, new Object[0] );
et ce code générer une Exception (NullPointerException )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Method mOnRun = GetDeclaredMethods( oObject.getGenericSuperclass(), "OnRun" ); mOnRun.invoke( null , new Object[0] );
Merci
Partager