List<GetProjectAndTeamOutBO> collectTrue = projectAndTeam.stream().filter(e-> e.getGroState() != 1).collect(Collectors.toList()); List<GetProjectAndTeamOutBO> collectTruer = projectAndTeam.stream().filter(e-> e.getGroState() == null).collect(Collectors.toList());为什么第一个会报错
时间: 2024-03-06 15:52:16 浏览: 127
Stream_Java8.pdf
根据代码,第一个会报错是因为 `projectAndTeam` 中的元素可能存在空引用,导致调用 `getGroState()` 方法时出现 NullPointerException 异常。可以在过滤之前加上 `Objects.nonNull()` 方法判断元素是否为空,如下所示:
```
List<GetProjectAndTeamOutBO> collectTrue = projectAndTeam.stream().filter(e -> Objects.nonNull(e) && e.getGroState() != 1).collect(Collectors.toList());
```
这样可以避免空引用异常。另外,第二个不会报错是因为它过滤的是 `getGroState()` 为 null 的元素,而不是调用 `getGroState()` 方法。
阅读全文