Cómo obtener un valor enum a partir de una cadena en Java
¡Hola a todos! Soy nuevo en Java y me encontré con un problema al trabajar con enumeraciones (enum). Tengo este enum para estados de pedido:
```java
public enum OrderStatus {
NEW,
PROCESSING,
SHIPPED,
DELIVERED,
CANCELLED
}
```
Obtengo una cadena de la base de datos, por ejemplo "PROCESSING", y necesito convertirla de vuelta al valor enum `OrderStatus.PROCESSING`. Intenté usar una conversión de tipos simple, pero no funciona:
```java
String statusStr = "PROCESSING";
OrderStatus status = (OrderStatus) statusStr; // Error de compilación
```
También intenté usar `valueOf()`, pero cuando la cadena no coincide con ningún valor enum, se lanza una excepción `IllegalArgumentException`. Por ejemplo, si el usuario ingresó "processing" (en minúsculas) o cometió un error tipográfico, el programa falla.
Indíquenme cómo convertir correctamente y de forma segura una cadena a enum. ¿Necesito manejar de alguna manera las mayúsculas/minúsculas? ¿Y qué hacer si la cadena no corresponde en absoluto?