我有两个不同的枚举,我想能够输出是否给定
字符串是枚举集合的一部分。这是我的代码:

public class Check {
    public enum Filter{SIZE, DATE, NAME};
    public enum Action{COPY, DELETE, REMOVE};

    public boolean isInEnum(String value, Enum e){
        // check if string value is a part of a given enum
        return false;
    }

    public void main(){
        String filter = "SIZE";
        String action = "DELETE";
                // check the strings
        isInEnum(filter, Filter);
        isInEnum(action, Action);
    }
}

eclipse说在最后两行中“过滤器无法解析为变量”,但是
除此之外,似乎函数“isInEnum”中的Enum参数是错误的。

这里出了点问题,谁能帮忙?

最佳答案

最简单(通常是最有效)的方法如下:

public <E extends Enum<E>> boolean isInEnum(String value, Class<E> enumClass) {
  for (E e : enumClass.getEnumConstants()) {
    if(e.name().equals(value)) { return true; }
  }
  return false;
}

然后调用isInEnum(filter, Filter.class)

07-27 13:34