Как получить все перечислимые значения в Java?

Я столкнулся с этой проблемой что я, не зная фактическое enum введите я должен выполнить итерации его возможных значений.

if (value instanceof Enum){
   Enum enumValue = (Enum)value;
}

Какие-либо идеи, как извлечь из enumValue его возможные значения?

85
задан Line 6 September 2017 в 09:18
поделиться

3 ответа

Object[] possibleValues = enumValue.getDeclaringClass().getEnumConstants();
145
ответ дан 24 November 2019 в 08:09
поделиться

Enum такие же, как Class es в том, что они типизированы. Ваш текущий код просто проверяет, является ли это Enum, без указания типа Enum, частью которого он является.

Поскольку вы не указали тип перечисления, вам придется использовать отражение, чтобы узнать, каков список значений перечисления.

Вы можете сделать это так:

enumValue.getDeclaringClass().getEnumConstants() 

Это вернет массив объектов Enum, каждый из которых является одной из доступных опций.

13
ответ дан 24 November 2019 в 08:09
поделиться

... или MyEnum.values ​​()? Или я что-то упустил?

6
ответ дан 24 November 2019 в 08:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: