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

时间:2015-12-04 05:54:39

标签: java enums

我有几个枚举,我想提供给像

这样的网络API
/get/enum-values?type=<enum-Name>

枚举如下:

public enum Color {RED, GREEN, BLUE};
public enum Status {OPEN, DONE, CLOSED};
public enum Type {CAR, BIKE, ON_FOOT};

我想编写的用于在web-API中统一处理所有这些枚举的代码如下:

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;
}

上面的函数无法编译,因为我无法一般地处理枚举。 有没有办法让这项工作?

我不想单独处理每个枚举。

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

1 个答案:

答案 0 :(得分:2)

由于泛型数组存在问题(编译错误:“无法创建通用数组”),最好使用'index' => 'application.controllers.soccer.IndexAction',

Arrays.asList()