Java 8: Convertir des dates en utilisant stream


J'essaie de convertir dynamiquement les dates. J'ai essayé cette méthode mais elle renvoie void.

Comment en faire un tableau d'objets 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.
Author: Tunaki, 2015-12-08

1 answers

À l'Aide de forEach est une mauvaise pratique pour cette tâche: vous devez muter une variable externe.

Ce que vous voulez, c'est mapper chaque date en tant que chaîne à son équivalent LocalDate. Par conséquent, vous voulez l'opération map:

LocalDate[] dates = Stream.of(datesStrings)
                          .map(LocalDate::parse)
                          .toArray(LocalDate[]::new);
 12
Author: Tunaki, 2017-05-23 10:27:20