Invoquer une méthode par son nom

De Centre de Ressources Numériques - Labomedia
Révision de 3 novembre 2017 à 20:37 par Mushussu (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Cet exemple permet d'appeler une méthode dynamiquement avec son nom. Il existe la méthode mehod() de Processing, mais celle-ci ne permet pas de passer des paramètres.

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

void setup() {
  noLoop();
}

void draw() {
  invoquer("maMethode", " C'est super !");
}

void invoquer(String s, String argument) { 
  try {
    Method m = this.getClass().getMethod(s, String.class);
    m.invoke(this, argument);
  } 
  catch (NoSuchMethodException x) {
    x.printStackTrace();
  }
  catch (InvocationTargetException x) {
    x.printStackTrace();
  }
  catch (IllegalAccessException x) {
    x.printStackTrace();
  }
}

void maMethode(String s) {
  println("Je suis la methode invoquée." + s);
}