Bonjour,
Mon but et d'invoquer la method B.OnRun() par réflexion sachant que les 2 class sont dans des jar.
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()
   {
 
   }
}
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
 
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