Tipos
Cuándo usar enum con switch
Un enum en Java sirve para representar opciones cerradas: niveles, estados, días, tipos de usuario o modos de operación. Usarlo con switch evita comparar cadenas a mano y hace que el compilador pueda ayudarte más.
La regla práctica es simple: si el valor solo puede ser uno de varios nombres conocidos, un enum suele ser más claro que una cadena. Después el switch decide qué hacer con cada constante.
Ejemplo mínimo
Imagina un estado de pedido con tres valores: NUEVO, PAGADO y ENVIADO. El enum define esos valores y el switch decide el mensaje que se muestra. Dentro del switch se escribe case NUEVO, no case Estado.NUEVO. Ese detalle evita muchos errores de principiante.
enum Estado { NUEVO, PAGADO, ENVIADO }
String mensaje(Estado estado) { switch (estado) { case NUEVO: return "Pendiente de pago"; case PAGADO: return "Preparando envío"; case ENVIADO: return "En camino"; default: return "Estado no reconocido"; } }
El ejemplo es pequeño, pero enseña la idea principal: el enum limita los valores posibles y el switch concentra la decisión. Si más adelante añades otro estado, revisa el switch y decide si necesita un nuevo case.
Buenas prácticas
- Usa nombres de enum claros y en mayúsculas.
- No compares enum con cadenas si puedes evitarlo.
- Revisa todos los switch cuando añadas una constante nueva.
- Mantén default si el valor puede venir de datos externos o versiones antiguas.
- No uses enum para listas que cambian todos los días desde base de datos.
Cuándo evitar un switch demasiado grande
Un switch con enum es cómodo cuando cada caso tiene una decisión pequeña. Si cada case empieza a ocupar muchas líneas, quizá el comportamiento deba moverse al propio enum, a una clase de servicio o a un mapa de funciones. El objetivo no es usar switch siempre, sino representar bien las opciones.
En proyectos de aprendizaje, el switch ayuda a ver claramente qué ocurre con cada valor. En proyectos grandes, revisa si el enum está acumulando demasiada lógica. Si al añadir una constante nueva tienes que modificar diez switch repartidos por el proyecto, puede que necesites una abstracción más centralizada.
También conviene distinguir entre valores internos y datos que llegan desde fuera. Si recibes texto de un formulario o una API, convierte primero ese texto a enum de forma controlada. Así puedes manejar errores de escritura, valores desconocidos y cambios de versión sin romper el switch principal.
Preguntas frecuentes
¿Puedo usar enum en switch en cualquier Java?
El uso clásico de enum con switch está disponible desde Java 5, aunque las expresiones switch modernas tienen mejoras en versiones posteriores.
¿Hace falta escribir Estado.NUEVO en el case?
No. Dentro del switch sobre Estado se usan directamente las constantes: case NUEVO.
¿Enum reemplaza siempre a una tabla de base de datos?
No. Enum va bien para opciones cerradas y estables. Si los valores cambian con frecuencia, una tabla puede ser más adecuada.
Ejemplo mental para elegir enum
Piensa en un enum como una lista de respuestas válidas dentro del código. Si el usuario puede escribir cualquier texto, todavía no tienes un enum; tienes una entrada que debe validarse. El enum aparece después, cuando conviertes esa entrada en un valor reconocido por el programa.
Por ejemplo, un formulario puede enviar nuevo, pagado o enviado como texto. Tu código debería convertir ese texto a Estado.NUEVO, Estado.PAGADO o Estado.ENVIADO antes de entrar en el switch. Si llega otra palabra, la validación puede devolver un error claro sin ejecutar una ruta incorrecta.
Esta separación hace que el switch sea más limpio. El switch decide qué hacer con valores ya válidos; la validación se encarga de datos externos. Separar ambas tareas ayuda a que el ejemplo siga siendo mantenible cuando se convierte en código real.
Cuando el enum crece, añade pruebas para cada constante. Una prueba por caso evita que un cambio aparentemente pequeño deje un estado sin respuesta o devuelva el mensaje equivocado.
En revisiones de código, busca switch que repiten la misma estructura. Si aparecen muchos, quizá el enum deba exponer un método o una estrategia común para no duplicar decisiones. Esa mejora suele aparecer cuando el ejemplo deja de ser académico y entra en producción. Empieza simple y refactoriza cuando haya repetición real.
Fuentes consultadas
Fuentes y referencias
Consulta referencias útiles para ampliar o contrastar esta guía.
Siguiente lectura
Guias relacionadas para continuar
Si quieres seguir con el mismo tema, aqui tienes paginas cercanas que amplian la tecnica, comparan variantes o te llevan a la siguiente rutina.