У меня есть массив Enum. Теперь я хочу преобразовать его в массив строк, который содержит имена перечислений, возвращаемых методом Enum#name(). Вот что я пробовал до сих пор (перечисление называется «Столбец».):
String[] stringArray = Arrays.asList(Column.values()).toArray(String[]::new);
Я всегда получаю исключение ArrayStoreException. Что я могу сделать?
Вам нужно передать перечисление, чтобы сначала сопоставить перечисление со строкой перед созданием массива:
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