In tutto il nostro progetto, abbiamo questo tipo di enumerazioni. Funzionano bene, ma non ne siamo sicuri.è la mia enumerazione corretta?
In particolare con il metodo getDocumentType (String).
C'è un modo per evitare l'iterazione su tutto il campo Enums?
public enum DocumentType {
UNKNOWN("Unknown"),
ANY("Any"),
ASSET(Asset.class.getSimpleName()),
MEDIA(Media.class.getSimpleName()),
MEDIA35MM(Media.class.getSimpleName() + " 35mm");
private String label;
private DocumentType(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
public static DocumentType getDocumentType(String label){
for(DocumentType documentType : DocumentType.values()){
if(documentType.getLabel().equals(label)){
return documentType;
}
}
return UNKNOWN;
}
}
Edit: controllare la risposta newacct. Anche lei sta bene.
Si sarebbe tentati di memorizzare una statica Mappa di etichette da enum casi, ma frustrante, Java non ti consente di riferimento a un campo statico dal costruttore di un enum. – skaffman
Mi chiedo perché usi Asset.class.getSimpleName() invece di scrivere semplicemente "Asset"? Hai intenzione di cambiare il nome con il refactoring? – akarnokd
Perché è sempre buona norma usare i letterali di classe invece delle stringhe? – skaffman