我的Java-Stream的Filter不起作用



我无法解释为什么我的过滤器不起作用。我排除了if-语句中的条件,以检查该条件是否真的为真。当DefaultLang(v.getLinkDefaultLang()(和currentLang(v.getLinkCurrentLang()(为Null时,我不希望在List中有该值!

manualResponseTOs.values().stream()
.filter(v -> isEmpty(v.getLinkDefaultLang()) && isEmpty(v.getLinkCurrentLang()))
.collect(Collectors.toList());

谢谢!现在我有了解决方案。

filter(v-> !(isEmpty(v.getLinkDefaultLang()) && isEmpty(v.getLinkCurrentLang())))

如果愿意,您还可以根据条件进行筛选,而不是将所有条件都放在同一行。它的可读性更强一些。

manualResponseTOs.values().stream()
.filter(v -> !isEmpty(v.getLinkDefaultLang()))
.filter(v -> !isEmpty(v.getLinkCurrentLang()))
.collect(Collectors.toList());

最新更新