Him*_*dav 4 java java-8 java-stream
以下代码为属性Salary抛出NPE为null.class Person有属性:string:name,Integer:age,Integer:salary
salary在这里可以为null.我想创建一份工资清单.
persons.stream().mapToDouble(Person::getSalary).boxed().collect(Collectors.toList())
在这里,我必须在结果列表中保留空值.null不能替换为0.
我认为你可以使用map而不是mapToDouble与三元运算符一起使用:
List<Double> salaries = persons.stream()
.map(Person::getSalary)
.map(s -> s == null ? null : s.doubleValue())
.collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)