Je dois invoquer les méthodes accesseur de champ, c'est-à-dire le getter d'une énumération générique, mais je n'arrive pas à comprendre comment appeler les méthodes, ou plus précisément comment passer une énumération générique en paramètre invoke-method.Appel de getters d'une énumération générique
Merci d'avance, toute aide est appréciée.
C'est ce que j'aimerais faire plus ou moins.
public void(Class<? extends Enum<?>> enumType) {
Enum<?>[] enumConstants = enumType.getEnumConstants();
String[] text = new String[enumConstants.length];
String[] names = new String[enumConstants.length];
for (int i = 0; i < enumConstants.length; i++) {
Method[] methods = enumConstants[i].getClass().getDeclaredMethods();
for (Method m: enumConstants[i].getClass().getDeclaredMethods()) {
System.out.println(enumConstants[i].name() + ": " + m.getName() + "()");
try {
if (GET_KEY_METHOD_NAME.equalsIgnoreCase(m.getName())) {
Object value = m.invoke(I HAVE NO IDEA WHAT TO PUT HERE, "");
System.out.println(value.toString());
}
if (GET_VALUE_METHOD_NAME.equalsIgnoreCase(m.getName())) {
Object value = m.invoke(I HAVE NO IDEA WHAT TO PUT HERE, "");
System.out.println(value.toString());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
Eh bien, la première supposition évidente est 'm.invoke (enumConstants [i])', sans aucun '' "' 'car un getter ne devrait avoir aucun paramètre. Est-ce que cela échoue? Si oui, que dit le message d'erreur? –
Avez-vous essayé de mettre enumConstants [i] sur "JE N'AI AUCUNE IDEE QUOI METTRE ICI"? – andrucz