从字符串中获取枚举索引?

新手上路,请多包涵

我有一个字符串值,还有一个字符串数组和一个包含范围的枚举。为了从提供的值中获取数组中字符串的索引,我这样写:

 Arrays.asList(myClass.BAUD_RATES).indexOf(username)

我如何为枚举执行此操作?我可以使用序号吗?还是我必须自己制作方法?

该方法可能是这样的:

 public enum Fruit {
   ...
   static public boolean isMember(String aName) {
       Fruit[] aFruits = Fruit.values();
       for (Fruit aFruit : aFruits)
           if (aFruit.fruitname.equals(aName))
               return aFruit;
       return false;
   }
   ...
}

原文由 Paul 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 501
2 个回答

不确定我是否理解正确,但根据您可能正在寻找的问题标题

YourEnum.valueOf("VALUE").ordinal();

  1. YourEnum.valueOf("VALUE") 返回名称为 "VALUE" 的枚举 ---
  2. 每个枚举 都知道它的位置(从零开始索引),我们可以通过对其调用 ordinal() 方法来获得。

原文由 Pshemo 发布,翻译遵循 CC BY-SA 4.0 许可协议

我可能不明白你的问题,但同样的代码也适用于枚举:

 int index = Arrays.asList(YourEnum.values()).indexOf(YourEnum.ENUM_ITEM);

或者你可以获得:

 int index = YourEnum.valueOf("ENUM_ITEM").ordinal();

原文由 Alban Dericbourg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题