Java 使用方法引用的方法上的流检查不为null

Java 使用方法引用的方法上的流检查不为null,java,java-8,java-stream,guava,method-reference,Java,Java 8,Java Stream,Guava,Method Reference,给定以下代码 List<Person> persons = ..; List<Person> personsWithoutAddress = persons.stream().filter(p -> p.getAddress() == null) .collect(Collectors.toList()); 列出人员=。。; 列出没有地址的人员= persons.stream().f

给定以下代码

    List<Person> persons = ..;
    List<Person> personsWithoutAddress = 
            persons.stream().filter(p -> p.getAddress() == null)
                    .collect(Collectors.toList());
列出人员=。。;
列出没有地址的人员=
persons.stream().filter(p->p.getAddress()==null)
.collect(Collectors.toList());

有没有一种方法可以内联使用过滤器中的方法引用
Person::getAddress
(可能与
Objects::isNull
或一些Guava实用方法结合使用…)而不编写额外的实用方法/谓词?

没有。但是为什么呢?方法参考更清晰/更容易阅读,仅此而已。。我很想知道是否可以用使用方法引用的语法来代替对方法返回的简单null检查。实际上,您认为类似于(Person::getAddress)的
Function.of,然后(Objects::isNull)
p->p.getAddress()==null更容易阅读,即使您可以这样编写(你不能)?首先,它要长得多,而且写起来很麻烦,因为你必须写出类名,这可能比短的
地址
.filter(((函数)Person::getAddress)长得多。然后(Objects::isNull)::apply)
,我希望现在你能有所启发。好吧,如果这是一个最小的选择,我同意它会更长,可读性也更低:
(函数)
,然后,
应用
的开销太大。