Я разработки Android приложения:Как получить Enum, используя его значение
Я это 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
переменную, чтобы получить индекс Gender.female
перечисления в array
возвращенное Gender.getSortedValues()
.
Я думаю, что мне нужно использовать переменную gender
, чтобы получить ее представление Gender, другими словами, чтобы получить переменную enum с Gender.female
как значение. И затем, используйте эту переменную перечисления для поиска по Gender.getSortedValues()
. Но я не знаю, как получить перечисление, используя его ценность.
Как я могу это сделать?
Вы пробовали и скомпилировали этот код? Я не уверен, что он компилируется из-за 'Arrays.sort()': массив 'values ()' не должен быть модифицируемым, обычно – fge
Мой код работает и компилируется отлично. – VansFannel
ОК, это странно ... Я думаю, '.values ()' делает копию тогда. – fge