Class Invocation

java.lang.Object
  extended by Invocation

public class Invocation
extends java.lang.Object

Objet "invocateur" qu'on associe à un objet, objet sur lequel on appelera dynamiquement des méthodes à partir de leurs nom et paramètres.


Field Summary
protected  java.lang.Object cible
          L'objet sur lequel on appelera les méthodes
 
Constructor Summary
Invocation(java.lang.Object cible)
           
 
Method Summary
 java.lang.Object invoquer(java.lang.String nomMethode, java.lang.Class[] types, java.lang.Object[] params)
          Invoque dynamiquement une méthode sur l'objet cible
static void main(java.lang.String[] argv)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cible

protected java.lang.Object cible
L'objet sur lequel on appelera les méthodes

Constructor Detail

Invocation

public Invocation(java.lang.Object cible)
Parameters:
cible - l'objet sur lequel on appelera les méthodes
Method Detail

invoquer

public java.lang.Object invoquer(java.lang.String nomMethode,
                                 java.lang.Class[] types,
                                 java.lang.Object[] params)
                          throws java.lang.Exception
Invoque dynamiquement une méthode sur l'objet cible

Parameters:
nomMethode - le nom de la méthode
types - la liste des types des paramètres. Note : on ne détermine pas automatiquement la liste des types à partir de la liste des paramètres puisqu'il faut pouvoir explicitement différencier, par exemple, le cas entre la classe "Integer" et le type primitif "int" (représenté alors par la valeur Integer.TYPE) et qu'on aura dans les 2 cas une instance de la classe Integer en tant que paramètre.
params - la liste des paramètres
Throws:
java.lang.Exception - deux cas sont à différencier :
  1. Un problème a eu lieu pour appeler la méthode (paramètres non corrects, accès interdit, pas de méthode de ce nom là ...) une exception UncallableMethodException est alors levée
  2. L'appel a bien eu lieu correctement mais la méthode a levé une exception, cette exception est alors levée à nouveau (d'où le type générique Exception dans la signature de la méthode puisqu'on ne peut lever n'importe quelle exception)
.

main

public static void main(java.lang.String[] argv)