【发布时间】:2013-07-13 09:31:14
【问题描述】:
我正在开发一个 Android 应用程序:
我有这个Enum:
public enum Gender
{
male (0, MyApplication.getAppContext().getString(R.string.male)),
female (1, MyApplication.getAppContext().getString(R.string.female));
private final int gender;
private final String description;
Gender(int aGender, String aDescription)
{
gender = aGender;
description = aDescription;
}
public int getValue() { return gender; }
@Override
public String toString() { return description; }
/**
* Returns all values in this Enum sorted alphabetically by
* description.
* @return All values sorted.
*/
public static Gender[] getSortedVaules()
{
Gender[] sorted = values();
Arrays.sort(sorted, EnumByNameComparator.INSTANCE);
return sorted;
}
}
假设我有int gender = 1。在这种情况下,1 是Gender.female 的值。
我想使用gender 变量来获取array 返回的array 中的Gender.female 枚举的索引。
我想我必须使用gender 变量来获取其性别表示,换句话说,获取一个以Gender.female 为值的枚举变量。然后,使用该枚举变量搜索Gender.getSortedValues()。但我不知道如何使用枚举值获取枚举。
我该怎么做?
【问题讨论】:
-
你试过编译这段代码了吗?由于
Arrays.sort(),我不确定它是否可以编译:values()数组通常不可修改 -
我的代码可以完美运行和编译。
-
好吧,这很奇怪...我猜
.values()会复制一份。 -
Suggestion 到 your now deleted question。顺便说一句,不要仅仅因为有人反对就删除问题。
-
另外,如果它解决了您的问题并且您正在使用它,您为什么不接受 fge 答案?