Quando stavo iniziando a programmare in Java, il fatto che le istruzioni switch non prendessero le stringhe mi frustrava. Quindi, usando Enums, ho realizzato i vantaggi che si ottengono con loro piuttosto che passare attraverso valori grezzi - tipo di sicurezza (che porta un refactoring più semplice) e anche chiarezza per altri sviluppatori.
Sto lottando per pensare a una situazione in cui con SE7 ora deciderò di utilizzare un interruttore con stringhe come input anziché Enums. Se vengono implementati tramite l'attivazione di intere stringhe (ad es. Anziché corrispondenze parziali o regex), non sembra offrire un motivo in meno per modificare il codice.
E con gli strumenti IDE e il rapporto di lettura / scrittura della codifica, sarei molto più felice di generare automaticamente un Enum in più rispetto al passare attorno ai valori di stringa.
Quali vantaggi ci apportano come programmatori? Meno piastra della caldaia?
Non sembra che la lingua richieda questa caratteristica. Anche se forse c'è un caso d'uso che sto trascurando.