Functional programming 使用Java8的可选选项避免列表处理中的“空检查”

Functional programming 使用Java8的可选选项避免列表处理中的“空检查”,functional-programming,java-8,nullable,java-stream,optional,Functional Programming,Java 8,Nullable,Java Stream,Optional,在类站点中,我有两个实用方法 第一个是parseStub,如果没有错误发生,它会将站点解析为主站点;否则,它将返回null。使用可选选项: 注意,在上面的代码中,我再次引入了null。 如何使用Optional来避免null和FilterObject::nonNull 这里有一个方法: return sites.stream() .map(Site::parseStub) .filter(Optional::isPresent) .map(Opti

在类站点中,我有两个实用方法

第一个是parseStub,如果没有错误发生,它会将站点解析为主站点;否则,它将返回null。使用可选选项:

注意,在上面的代码中,我再次引入了null。 如何使用Optional来避免null和FilterObject::nonNull

这里有一个方法:

return sites.stream()
        .map(Site::parseStub)
        .filter(Optional::isPresent)
        .map(Optional::get)
        .collect(Collectors.toList());
这里有一个方法:

return sites.stream()
        .map(Site::parseStub)
        .filter(Optional::isPresent)
        .map(Optional::get)
        .collect(Collectors.toList());
Java 9:flatMapsite->Site.parseStubsite.stream.collecttoList Java 9:flatMapsite->Site.parseStubsite.stream.collecttoList
return sites.stream()
        .map(Site::parseStub)
        .filter(Optional::isPresent)
        .map(Optional::get)
        .collect(Collectors.toList());