J'essaie de savoir si une classe est un Enum, mais je pense qu'il me manque quelque chose:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
Cela me donne une erreur en disant que Enum.class n'est pas valide. Alors, comment puis-je vérifier si une classe est une énumération? Je suis à peu près sûr qu'il est possible de le déterminer, je suis tout simplement incapable de l'obtenir.
Merci
La syntaxe correcte serait:
Enum.class.isAssignableFrom(test.MyEnum.class)
mais pour les énumérations, voici une méthode plus pratique:
if (someObject.getClass().isEnum()))
Mise à jour: pour les éléments énumérés avec un corps (par exemple, qui remplacent les méthodes), cela ne fonctionnera pas réellement. Dans ce cas, utilisez
if (someObject instanceof Enum<?>)
Référence:
Si vous parlez de Java 5 nouvelle fonctionnalité - enum
(ce n'est pas très nouveau en fait), alors c'est la voie à suivre:
if (obj.getClass().isEnum()) {
...
}
Si Enum
est votre classe personnalisée, vérifiez simplement que obj instanceof Enum
.