【发布时间】:2021-05-17 20:32:44
【问题描述】:
我正在尝试为 Object is NotNull 和 EqualsIgnoreCase 编写过滤谓词,但我无法为 EqualsIgnorecase 部分创建谓词。能不能给点建议。
我的代码是:
basicDetailentity.forEach(prj -> {
CharlieAddress billToAddress = addressList.stream()
.filter(add -> Objects.nonNull(add.getSiteDuns())
&& add.getSiteDuns().equalsIgnoreCase(prj.getBillToDuns())
&& Objects.nonNull(add.getOrgName())
&& add.getOrgName().equalsIgnoreCase(prj.getOperatingUnit()))
.findFirst().orElse(null);
我已经为 nonNull 部分创建了 2 个谓词,但发现很难为 equalsIgnoreCase 部分创建一个,任何建议都会有所帮助
public static final Predicate<CharlieAddress> CHARLIE_ADDRESS_DUNS_PRESENT =
add -> Objects.nonNull(add.getSiteDuns());
public static final Predicate<CharlieAddress> CHARLIE_ADDRESS_ORG_PRESENT =
add -> Objects.nonNull(add.getOrgName());
【问题讨论】:
-
当然..谢谢你的建议..欣赏它。
-
所有这些类的结构是什么?我们应该猜?
-
使用
Objects.nonNull(…)代替简单的… != null没有任何改进。除此之外,您的代码缺乏有用的目的。第一个代码片段甚至没有编译,但即使你添加了缺少的括号,它也会是forEach中的一个值生成表达式,它只会删除每个值。
标签: java filter java-8 predicate