Java 8:使用流转换日期

Yas*_*jaj 4 java date java-8 java-stream

我正在尝试动态转换日期.我试过这个方法,但它返回无效.

如何使它成为一个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.
Run Code Online (Sandbox Code Playgroud)

Tun*_*aki 12

使用forEach对于此任务来说是一种不好的做法:您需要改变外部变量.

你想要的是将每个日期作为字符串映射到它的LocalDate等价物.因此你想要的map操作:

LocalDate[] dates = Stream.of(datesStrings)
                          .map(LocalDate::parse)
                          .toArray(LocalDate[]::new);
Run Code Online (Sandbox Code Playgroud)