Java : invoquer une méthode statique par réflexion

La réflexion en java permet d’instancier dynamiquement un objet et d’appeler dynamiquement des méthodes de ce nouvel objet.

Très bien, mais qu’en est-il des méthodes static ?

La réponse est finalement simple : une méthode statique n’agit sur aucun objet. Il suffit donc de passer null comme instance de classe lors de l’appel à invoke.
Prenons exemple d’une classe MaClasse qui aurait une méthode statique myStaticMethod prenant un seul paramètre de type string.
Pour invoker cette méthode par réflexion, il vous suffit de faire :

  1.  Class<?> class1;
  2.  try {
  3.      class1 = Class.forName("fr.fluminis.MaClasse");
  4.      Method method = class1.getMethod("myStaticMethod", String.class);
  5.      Object o = method.invoke(null, "Fluminis");
  6.      System.out.println(o);
  7.  } catch (Exception e) {
  8.      e.printStackTrace();
  9.  }

Le commentaires sont fermés.