将泛型参数转换为枚举可以通过以下步骤实现:
public <T extends Enum<T>> T convertToEnum(Class<T> enumClass, Object value) {
if (enumClass.isInstance(value)) {
return (T) value;
} else if (value instanceof String) {
return Enum.valueOf(enumClass, (String) value);
} else {
throw new IllegalArgumentException("Invalid value for enum conversion");
}
}
以下是一个示例用法:
enum Color {
RED, GREEN, BLUE
}
public class Main {
public static void main(String[] args) {
Main main = new Main();
Color color = main.convertToEnum(Color.class, "GREEN");
System.out.println(color); // 输出:GREEN
}
public <T extends Enum<T>> T convertToEnum(Class<T> enumClass, Object value) {
if (enumClass.isInstance(value)) {
return (T) value;
} else if (value instanceof String) {
return Enum.valueOf(enumClass, (String) value);
} else {
throw new IllegalArgumentException("Invalid value for enum conversion");
}
}
}
在这个示例中,我们将字符串"GREEN"转换为Color枚举类型,并成功地输出了枚举值"GREEN"。
领取专属 10元无门槛券
手把手带您无忧上云