2015-12-08 4 views
4

Я пытаюсь преобразовать даты динамически. Я пробовал этот метод, но он возвращается недействительным.Java 8: конвертировать даты с использованием потока

Как создать массив из LocalDate объектов?

String[] datesStrings = {"2015-03-04", "2014-02-01", "2012-03-15"}; 
LocalDate[] dates = Stream.of(datesStrings) 
          .forEach(a -> LocalDate.parse(a)); // This returns void so I 
                  // can not assign it. 

ответ

11

Using forEach is a bad practice для выполнения этой задачи: вам нужно будет мутировать внешнюю переменную.

Что вы хотите, так это сопоставление каждой даты как строки с ее эквивалентом LocalDate. Следовательно, вы хотите выполнить операцию map:

LocalDate[] dates = Stream.of(datesStrings) 
          .map(LocalDate::parse) 
          .toArray(LocalDate[]::new); 
Смежные вопросы