Avatar ·

如何在Java中根据字符串获取枚举值

大家好!我是Java新手,在使用枚举 (enum) 时遇到了问题。我有一个用于订单状态的枚举: ```java public enum OrderStatus { NEW, PROCESSING, SHIPPED, DELIVERED, CANCELLED } ``` 我从数据库中获取一个字符串,例如 "PROCESSING",需要将其转换回枚举值 `OrderStatus.PROCESSING`。我尝试使用简单的类型转换,但不起作用: ```java String statusStr = "PROCESSING"; OrderStatus status = (OrderStatus) statusStr; // 编译错误 ``` 我还尝试使用 `valueOf()`,但当字符串不匹配任何枚举值时,会抛出 `IllegalArgumentException` 异常。例如,如果用户输入了 "processing"(小写)或拼写错误,程序就会崩溃。 请问如何正确且安全地将字符串转换为枚举?是否需要处理字母大小写?如果字符串根本不匹配任何枚举值该怎么办?