Массив перечисления в массив строк

У меня есть массив Enum. Теперь я хочу преобразовать его в массив строк, который содержит имена перечислений, возвращаемых методом Enum#name(). Вот что я пробовал до сих пор (перечисление называется «Столбец».):

String[] stringArray = Arrays.asList(Column.values()).toArray(String[]::new);

Я всегда получаю исключение ArrayStoreException. Что я могу сделать?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
2 107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

String[] arrStr = Arrays.stream(FooEnum.values()) // create stream of enum values
        .map(e -> e.toString())  // convert enum stream to String stream
        .toArray(String[]::new); // convert stream to an array

Другие вопросы по теме