У меня есть список List<String>
(list1
) и функция Integer foo(String s)
. Используя силу Java 8, я хочу преобразовать list1
в List<Integer>
, применив foo
к каждому элементу list1
. Следующий код работает, но есть небольшая проблема:Список <String> в список <Integer> с использованием Integer foo (String s)
List<Integer> list2 = list1.stream().mapToInt(s -> foo(s)).boxed().collect(Collectors.toList());
Когда foo
возвращается null
для некоторого элемента list1
в NullPointerException
брошен. Кроме того, мое решение выглядит немного неудобно. Так есть лучший?
Вместо написания 's -> foo (s)', можно также написать 'ClassName :: foo', где' ClassName' - это класс, в котором объявляется 'foo()' – Joffrey