Java 枚举:获取密钥列表

Java 枚举:获取密钥列表,java,enums,Java,Enums,我不是java开发人员。但我现在正在研究Android应用程序的开发,所以我做了一些预言,在三年没有接触过java之后,我又做了一些java 我期待着使用“谷歌api翻译java”库。 其中有一个班级。它是一个枚举,允许提供语言名称并为Google Translate获取其值 我可以使用以下工具轻松获取所有值: for (Language l : values()) { // Here I loop on one value } 但我想得到的是所有键名的列表(法语、英语等)。 是否有类

我不是java开发人员。但我现在正在研究Android应用程序的开发,所以我做了一些预言,在三年没有接触过java之后,我又做了一些java

我期待着使用“谷歌api翻译java”库。
其中有一个班级。它是一个枚举,允许提供语言名称并为Google Translate获取其值

我可以使用以下工具轻松获取所有值:

for (Language l : values()) {
    // Here I loop on one value
}
但我想得到的是所有键名的列表(法语、英语等)。

是否有类似于“keys()”的方法允许我循环遍历枚举的所有键?

是-如果枚举为X,则使用X.values()。请参见。

尝试以下操作:

for (Language l : Language.values()) {
    l.name();
}
另见:


语言.values()的替代方法是使用:

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

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

编辑:从另一条评论判断,您担心
toString()
被覆盖-请调用
name()

for (Language l : Language.values())
{
    String name = l.name();
    // Do stuff here
}

我试过了。但是库重新定义了toString()方法。所以我得到的仍然是值,而不是键。@Damien:请看对我答案的编辑。基本上你在找name()。name()正是我要找的。非常感谢。
for (Language l : Language.values())
{
    String name = l.name();
    // Do stuff here
}