J'essaie de contourner une erreur de compilation ("Bound mismatch: ...") relative à la recherche dynamique d'énumération.Enum.valueOf (Classe <T> enumType, String name) question
Fondamentalement, je veux réaliser quelque chose comme ceci:
String enumName = whatever.getEnumName();
Class<? extends Enum<?>> enumClass = whatever.getEnumClass();
Enum<?> enumValue = Enum.valueOf(enumClass, enumName);
Tout ce que je fais, je finis toujours avec cette erreur de compilation. Honnêtement, génériques et enums sont assez ahurissants pour moi ...
Qu'est-ce que je fais mal ici?
La question est sur les énumérations, les génériques et la réflexion. Si vous ignorez les médicaments génériques En particulier pour les "types rares" comme 'Class extends Enum>'. –
Le point est que a) il ne peut pas fonctionner autrement sans une méthode d'aide ou un type et b) nous savons avec certitude que tout 'Class extends Enum> 'satisfera aussi' Class> '(parce que c'est ainsi que fonctionnent les classes enum) même s'il n'y a aucun moyen de vérifier cela sans une variable de type. '@ SuppressWarnings' est une annotation que vous ne devriez utiliser que si vous savez ce que vous faites, et je sais. –