Java 以通用方式处理多个枚举类型

Java 以通用方式处理多个枚举类型,java,enums,Java,Enums,我有两个枚举,我想让它们对像这样的web API可用 /get/enum-values?type=<enum-Name> 我想为在web API中一般处理所有这些枚举而编写的代码如下: public enum Color {RED, GREEN, BLUE}; public enum Status {OPEN, DONE, CLOSED}; public enum Type {CAR, BIKE, ON_FOOT}; Class<?>[] enumsArray = n

我有两个枚举,我想让它们对像这样的web API可用

/get/enum-values?type=<enum-Name>
我想为在web API中一般处理所有这些枚举而编写的代码如下:

public enum Color {RED, GREEN, BLUE};
public enum Status {OPEN, DONE, CLOSED};
public enum Type {CAR, BIKE, ON_FOOT};
Class<?>[] enumsArray = new Class<?>[] {
    Color.class, Status.class, Type.class
};
List<String> getValuesForEnum(String enumName) {
    List<String> returnValue = new ArrayList<>();
    // Loop over the above array to find enum corresponding to the argument
    for (Object e: foundEnum.values()) {
        returnValue.add(e.toString());
    }
    return returnValue;
}
Class[]enumsArray=newclass[]{
Color.class、Status.class、Type.class
};
列表getValuesForEnum(字符串枚举名){
List returnValue=new ArrayList();
//在上述数组上循环以查找与参数对应的枚举
对于(对象e:foundEnum.values()){
returnValue.add(例如toString());
}
返回值;
}
上面的函数无法编译,因为我无法一般地处理枚举。 有什么办法可以让这一切顺利进行吗

我不想依赖于单独处理每个枚举


也许我可以从一些常见枚举扩展所有枚举?

因为泛型数组存在问题(编译错误:“无法创建泛型数组”),最好使用
数组。asList()


private static final list能否提供示例输入和预期输出?GetValuesForeum()的示例输入可以是“Color”,预期输出是数组列表{“RED”、“GREEN”、“BLUE”}。在这种情况下,您可能需要使用
映射
private static final List<Class<? extends Enum<?>>> ENUMS = Arrays.asList(
        Color.class, Status.class, Type.class
);
private static List<String> getValuesForEnum(String enumName) {
    for (Class<? extends Enum<?>> enumClass : ENUMS)
        if (enumClass.getSimpleName().equals(enumName)) {
            List<String> values = new ArrayList<>();
            for (Enum<?> enumConstant : enumClass.getEnumConstants())
                values.add(enumConstant.name()); // or enumConstant.toString()
            return values;
        }
    throw new IllegalArgumentException("Unknown enum: " + enumName);
}