如何使用 Lambda 仅在
result.getExtendedAddress()
存在时添加条件?
原始状态:
.filter(result -> StringUtils.isNotBlank(title) && StringUtils.contains(result.getTitle().toLowerCase(), title.toLowerCase()))
新状况:
.filter(result -> StringUtils.isNotBlank(title) &&
(StringUtils.contains(result.getTitle().toLowerCase(), title.toLowerCase()) ||
((result.getExtendedAddress()!= null) && (StringUtils.contains(result.getExtendedAddress().toLowerCase(), title.toLowerCase()))))
这个新条件似乎过于复杂,我想知道是否有更好的方法?
感谢@Thomas,我能够使用
StringUtils.containsIgnoreCase()
快速找到解决方案。该方法描述于here。
解决方案:
.filter(result -> StringUtils.isNotBlank(title) &&
(StringUtils.containsIgnoreCase(result.getTitle(), title) ||
StringUtils.containsIgnoreCase(result.getAdditionalAddress(), title)))