在使用stream().filter过滤集合元素时,可以使用Java 8的Optional类来忽略属性中的空值。Optional类用于表示一个值可能存在也可能不存在,可以避免空指针异常的发生。

举个例子,假设我们有一个Person类,其中有一个name属性:

public class Person {
    private String name;
    // getter and setter
}

如果我们想要过滤出所有name属性不为空的Person对象,可以这样写:

List<Person> people = ... // 初始化集合
List<Person> filteredPeople = people.stream()
    .filter(p -> Optional.ofNullable(p.getName()).isPresent())
    .collect(Collectors.toList());

上面的代码中,使用了Optional.ofNullable方法来将可能为空的属性包装成Optional对象,然后调用isPresent()方法判断是否存在值。如果存在值,说明属性不为空,就将该Person对象加入到过滤后的集合中

streamfilter忽略属性中的空值

原文地址: http://www.cveoy.top/t/topic/eN1H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录