berny00 ha scritto:
[CODE] switch(ruoloString) {
case "Amministratore":
ruolo.valueOf(ruoloString);
break;
case "Cliente":
ruolo.valueOf(ruoloString);
break;
case "Responsabile_magazzino":
ruolo.valueOf(ruoloString);
break;
case "Contabile":
ruolo.valueOf(ruoloString);
break;
case "Responsabile_catalogo":
ruolo.valueOf(ruoloString);
break;
}
Questo che hai scritto e che ho quotato comunque è molto "brutto" (oltre che ripetitivo). Se usi delle enum e hai stringhe da cui ricavare l'oggetto della
enum-constant, la prima cosa da vedere è se le stringhe possono corrispondere esattamente ai nomi delle
enum-constant.
Le
enum-constant dovrebbero essere dichiarate seguendo le regole generali delle costanti: tutte in maiuscolo con l'underscore che separa le parole, ec. RESPONSABILE_MAGAZZINO.
Se le stringhe possono corrispondere esattamente alle
enum-constant, basta un solo valueOf che però, attenzione, può lanciare IllegalArgumentException. Se devi fare qualunque altra logica di match, es. confronto case-insensitive e/o restituzione di un default (es. null) se non c'è match e/o altro, allora conviene fare un metodo apposito di parsing .. e preferibilmente
nella enum stessa.