在这种情况下,我们的列表中有损坏的数据X,并且该损坏的数据X的存在会阻止对与X相同类型的Y数据进行操作。这是不正常的,我们必须屏蔽代码,以便损坏的数据X的存在不会阻止其他有效数据的使用。

我在操作过滤器中使用了Optional,如果名称为null,则跳过过滤器。

     Personne personne = null;
     String name= personne.getName();
     try {
        Optional<Personne> abstractPersonne=
      APIPersonne.getAllPersonne(currentPersonne.getMethod())
                                                            .stream()
                                                            .filter(e -> e.getName() != null && e.getName().equals(name))
                                                            .findAny();
  if (abstractPersonne.isPresent())
    personne= abstractPersonne.get();
}


有没有一种方法可以避免(e-> e.getName!= null)的测试?

最佳答案

如果您确定变量“名称”是空安全的,则只需反转条件即可。例如代替

e.getName().equals(name)


使用

name.equals(e.getName())

关于java - 如何避免流中的空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58472884/

10-11 15:24