¿Por qué no es posible usar valores enum como cadenas en una caja de conmutadores? (O lo que es malo en esto :)Uso de representaciones de cadena de valores enum en la caja del conmutador
String argument;
switch (argument) {
case MyEnum.VALUE1.toString(): // Isn't this equal to "VALUE1" ?
// something
break;
case MyEnum.VALUE2.toString():
// something else
break;
Lo importante es que 'VALUE1' es estático. Podrías tener tu propio 'myValueOf()' y aún así funcionaría. –
Maldición, 'valueOf()' no está en un 'caso' en absoluto. Estoy borrando ese comentario anterior, no puedo verlo. Gracias de nuevo. – Bloke
Tenga cuidado con valueOf() que arroja NPE y IllegalArgumentException si el argumento no es válido. El código de Bloke tiene sentido para evitar manejar estas excepciones (pero lamentablemente no funciona). – Nereis