Ho un'istruzione switch in Java, su un Enum che chiamiamo IMyInterface.MyEnumNelle istruzioni switch Java sull'enumerazione, perché ricevo un errore di compilazione quando qualifico i miei valori in ciascun caso?
Ognuno dei miei casi di dichiarazioni ha la forma: IMyInterface.MyEnum.MyValue, (anche se ho potuto cadere l'IMyInterface se ho importato).
Tuttavia, il compilatore (Java 6) genera un errore: "L'etichetta del caso qualificato IMyInterface.MyEnum.MyValue deve essere sostituita con la costante enum nonqqificata MyValue".
Posso ovviamente farlo, ma per la vita di me non capisco quale sia lo scopo di questo errore. Chiaramente, se il compilatore può gestire il valore reale, dovrebbe essere in grado di gestire il nome completo come per le costanti. In effetti, avrei assunto che il compilatore trasformasse la costante nel nome completo.
Quindi, guru Java, qual è la logica alla base di questo? Grazie!
Personalmente, non mi dispiace che le enumerazioni non possano essere qualificate in blocchi di switch-case; rende il codice più leggibile. Tieni presente che per le classi di enumerazione che possiedi (nel codice che puoi modificare), la migliore pratica è quella di non utilizzare mai un blocco di switch case. In questa situazione, i metodi specifici costante Enum sono più manutenibili e meno fragili rispetto al caso switch-case. – scottb