供函数,可以将enum转换为string,也可以通过string获取对应enum的值,定义和使用过程和直接使用enum关键字差不多。
时间: 2024-10-06 22:00:33 浏览: 27
在Java中,我们可以创建一个工具类或者静态方法,用于提供枚举类型(Enum)与字符串之间的方便转换。这种功能通常称为`StringValueMapper`或`EnumConverter`。以下是它的定义和使用示例:
```java
public class EnumUtils {
// 使用泛型确保对所有枚举类型的通用性
public static <T extends Enum<T>> String enumToString(T enumValue) {
return enumValue.name();
}
// 反向转换,将字符串转换回对应的枚举值
@SuppressWarnings("unchecked")
public static <T extends Enum<T>> T stringToEnum(String str, Class<T> clazz) throws IllegalArgumentException {
try {
return Enum.valueOf(clazz, str);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("Invalid value for enum " + clazz.getName() + ": " + str);
}
}
}
// 使用示例
public enum Color {RED, GREEN, BLUE}
public void testEnumConversion() {
Color color = EnumUtils.enumToString(Color.RED); // 转换为字符串:"RED"
Color convertedColor = EnumUtils.stringToEnum("BLUE", Color.class); // 将字符串转换回枚举值:BLUE
}
```
阅读全文