作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我期待着使用“google-api-translate-java”库。
其中有一个Language类(class)。这是一个枚举,允许提供语言名称并获取它对 Google 翻译的值(value)。
我可以很容易地得到所有的值:
for (Language l : values()) {
// Here I loop on one value
}
但我想要得到的是所有键名的列表(法语、英语、...)。
是否有类似“keys()”的方法允许我循环遍历所有枚举的键?
最佳答案
Language.values()
的替代方法是使用 EnumSet
:
for (Language l : EnumSet.allOf(Language.class))
{
}
如果您想在使用集合接口(interface)而不是数组的 API 中使用它,这将很有用。 (它也避免了创建数组开始......但当然需要执行其他工作。这都是权衡取舍。)
在这种特殊情况下,values()
可能更合适 - 但至少值得了解 EnumSet
。
编辑:从另一条评论来看,您担心 toString()
被覆盖 - 请改为调用 name()
:
for (Language l : Language.values())
{
String name = l.name();
// Do stuff here
}
关于java - 枚举 : get the keys list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711862/
我是一名优秀的程序员,十分优秀!