Class Invocation
java.lang.Object
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 |
cible
protected java.lang.Object cible
- L'objet sur lequel on appelera les méthodes
Invocation
public Invocation(java.lang.Object cible)
- Parameters:
cible
- l'objet sur lequel on appelera les méthodes
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éthodetypes
- 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 :
- 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
- 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)