Как получить номер возможного элемента Enum?
Есть ли встроенный способ получить количество элементов Enum с чем-то вроде Myenum.length
,
Или мне нужно реализовать себе функцию int size()
hardcording число элементов?
Ответы
Ответ 1
Да, вы можете использовать метод Enum.values()
для получения массива значений Enum, а затем использовать свойство length
.
public class Main {
enum WORKDAYS { Monday, Tuesday, Wednesday, Thursday, Friday; }
public static void main(String[] args) {
System.out.println(WORKDAYS.values().length);
// prints 5
}
}
http://ideone.com/zMB6pG
Ответ 2
Вы можете получить длину, используя Myenum.values().length
Enum.values()
возвращает массив из всех констант enum
. Вы можете использовать переменную length
этого массива, чтобы получить число констант enum
.
Предполагая, что у вас есть следующее перечисление:
public enum Color
{
BLACK,WHITE,BLUE,GREEN,RED
}
Следующий оператор присваивает 5 значению size
:
int size = Color.values().length;
Ответ 3
MyEnum.values()
возвращает константы перечисления в виде массива.
Итак, вы можете использовать:
int size = MyEnum.values().length
Ответ 4
Метод enum.values () добавляется Java-компилятором и не упоминается в API.
Где находится документация для метода values () для Enum?