J'essaie d'utiliser un Enum comme une carte pour récupérer des noms de pays des codes de pays Alpha-2. J'ai une classe ENUM comme SO:
String country = new Country("AF").getFullName();
3 Réponses :
Vérifiez ce https://stackoverflow.com/a/16851422/3874879 Enums ne peut pas être instancié, ils sont comme une constante, vous devez les définir au moment de la compilation, je suppose p>
Vous ne pouvez pas créer d'objet.
vérifier cette documentation: https: // docs .Orcle.com / Javase / 7 / Docs / API / Java / Lang / Enum.html P>
Et essayez ceci: String Pays = Pays.af.getfulname (); / CODE> P>
FindbyCountrycode (CountryCode) Code> Votre ENUM P>
public Country findByCountryCode(String code) {
for (Country value : Country.values()) {
if (value.getFullName().equals(code)) {
return value;
}
}
return null;
}
Un énumé est une "classe" spéciale qui représente un groupe de constantes (variables immuables, telles que les variables finales).
Vous pouvez accéder aux constantes ENUM avec la syntaxe DOT: P>
String country = Country.AF.getFullName();
essayez
af.getfullname () code>;) (Les constructeurs enum doivent tous être invoqués dans l'énum ... ... sans "nouveau" mot-clé !; ... donc
AF ("Afghanistan" ) code> est la déclaration ENUM (Instance) + Invocation du constructeur)
Le problème est que j'aimerais idéalement utiliser une variable à la place de la chaîne codée
String Country = Nouveau pays (CountryCode) .getfullName (); code>.
Utilisez
pays.af code> ou
pays.valueof ("AF") code>. En outre, cela n'a rien à voir avec Lombok, vous n'utilisez que cela pour générer un getter.
Si vous souhaitez le pays code> AF CODE> de la chaîne
"AF" code>, vous pouvez utiliser:
pays.valueof ("AF") code> ..Si vous Besoin de cette fonctionnalité pour le nom complet, vous devez mettre en œuvre.