如何在Java8中筛选包含空引用的元素
因此,目前我正试图将注意力集中在Java8上 我有这个流操作如何在Java8中筛选包含空引用的元素,java,java-8,Java,Java 8,因此,目前我正试图将注意力集中在Java8上 我有这个流操作 List<MyObject> parsedEvents = events.stream() .filter(Objects::nonNull) .map( e -> MyObject.builder() .setFoo(e.foo()) .setBar(e.bar()) .setBaz(e.baz()) .build() ).collect(Collectors.toList
List<MyObject> parsedEvents = events.stream()
.filter(Objects::nonNull)
.map(
e -> MyObject.builder()
.setFoo(e.foo())
.setBar(e.bar())
.setBaz(e.baz())
.build()
).collect(Collectors.toList());
List parsedEvents=events.stream()
.filter(对象::非空)
.地图(
e->MyObject.builder()
.setFoo(e.foo())
.立根杆(e.杆())
.setBaz(e.baz())
.build()
).collect(Collectors.toList());
但是,有时e.foo()可以为Null,e.bar()可以为Null,e.baz()可以为Null
所以,我只想过滤那些任何方法都将返回null的事件
在Java8中,有什么干净的方法可以做到这一点。试试这个
List<MyObject> parsedEvents = events.stream()
.filter(Objects::nonNull)
.filter(e -> Stream.of(e.foo(), e.bar(), e.baz())
.allMatch(Objects::nonNull))
.map(
e -> MyObject.builder()
.setFoo(e.foo())
.setBar(e.bar())
.setBaz(e.baz())
.build())
.collect(Collectors.toList());
List parsedEvents=events.stream()
.filter(对象::非空)
.filter(e->Stream.of(e.foo(),e.bar(),e.baz())
.allMatch(对象::非空))
.地图(
e->MyObject.builder()
.setFoo(e.foo())
.立根杆(e.杆())
.setBaz(e.baz())
.build())
.collect(Collectors.toList());
在现有过滤器中添加所需的条件,或者您是否在寻找其他条件?关于标题,它完全是重复的。没有空对象,只有空引用。