rehoni
2022-04-27 16:52:55 +08:00
肯定不是 stream 的问题,就算你 foreach 也会 npe 的,最好确保数据可靠性,给你找了个写法
[如果整个 list 可能为 null] 用 Optional 包装一下
[如果 list 中的某个 object 可能为 null] 用 .filter(Objects::nonNull)
List<Person> personList = new ArrayList<>();
personList.add(new Person());
personList.add(null);
personList.add(new Person("小明", 10));
personList.add(new Person("小红", 12));
Optional.ofNullable(personList).orElseGet(() -> {
System.out.println("personList 为 null !");
return new ArrayList<>();
}).stream().filter(Objects::nonNull).forEach(person -> {
System.out.println(person.getName());
System.out.println(person.getAge());
});