Si vous avez une énumération à laquelle vous accédez par réflexion, comment passeriez-vous sa valeur dans l'appel à method.invoke?passez enum enum to method.invoke java
Serait-il quelque chose comme (présentée comme une méthode statique pour la simplicité)
Class enumClazz = Class.forName("mypkg.MyEnum",true,MyClassLoader);
Class myReflectedClazz = Class.forName("mypkg.MyClass",true,MyClassLoader);
Field f = enumClazz.getField("MyEnumValue");
Method m = myReflectedClazz.getMethod("myMethod",enumClazz);
m.invoke(null,f.get(null));
avez-vous Essayé? – skaffman
J'en doute - il ne compilera pas –
Correct, je ne l'avais pas essayé, le f.get() est invalide, il aurait dû être f.get (null). Après correction, mon exemple fonctionne. –