枚举:获取密钥列表

Dam*_*IEU 3 java enums

我不是一个java开发人员.但我现在正在研究Android应用程序开发,所以我做了一些怀旧,在没有触及它三年之后再做一些java.

我期待使用"google-api-translate-java"库.
其中有一个语言类.这是一个enum,允许提供语言名称,并为谷歌翻译获得它的价值.

我可以很容易地得到所有的价值:

for (Language l : values()) {
    // Here I loop on one value
}
Run Code Online (Sandbox Code Playgroud)

但我想得到的是所有键名称的列表(法语,英语,......).
是否有类似"keys()"方法的东西允许我遍历所有枚举键?

Jon*_*eet 9

另一种方法Language.values()是使用EnumSet:

for (Language l : EnumSet.allOf(Language.class))
{
}
Run Code Online (Sandbox Code Playgroud)

如果要在使用集合接口而不是数组的API中使用它,这将非常有用.(它也避免了创建数组开始......但当然需要执行其他工作.这都是权衡取舍.)

在这种特殊情况下,values()可能更合适 - 但至少值得了解它EnumSet.

编辑:从另一个评论判断,你有一个关于toString()被覆盖的担忧- 请致电name():

for (Language l : Language.values())
{
    String name = l.name();
    // Do stuff here
}
Run Code Online (Sandbox Code Playgroud)