Enum:获取密钥列表
我不是java开发人员。但我现在正在研究Android应用程序开发,所以我正在做一些怀旧的事情,在三年后再次尝试一些Java。Enum:获取密钥列表
我期待使用“google-api-translate-java”库。
其中有一个Language类。这是一个枚举,它允许提供语言名称并为Google翻译提供价值。
我可以很容易地得到所有的值用:
for (Language l : values()) {
// Here I loop on one value
}
但我会希望得到的是所有的按键名称(法语,英语,...)的列表。
有没有像“keys()”方法让我循环所有枚举的键?
到替代是使用EnumSet
:
for (Language l : EnumSet.allOf(Language.class))
{
}
,如果你想它使用集合的API中使用它,这是有用的接口,而不是一个数组。 (这也避免了创建阵列,但是需要执行其他工作,当然,这完全取决于折衷)。
在这种特殊情况下,values()
可能更合适 - 但它是值得的至少知道EnumSet
。
编辑:由另一评论来看,你有一个问题关于toString()
被覆盖 - 叫name()
代替:
for (Language l : Language.values())
{
String name = l.name();
// Do stuff here
}
是 - 如果枚举是X,则使用X.values()。请参阅this tutorial。
我试过了。但是库重新定义了toString()方法。所以我得到的仍然是价值而不是关键。 – 2010-04-26 08:05:27
@Damien:查看我编辑的答案。基本上你的名字是() – 2010-04-26 08:12:40
试试这个:
for (Language l : Language.values()) {
l.name();
}
参见:
.name()正是我所期待的。谢谢。 – 2010-04-26 08:23:33