流过滤器添加条件
Stream filter add condition
如何使用 Lamdas 仅在 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)))
如何使用 Lamdas 仅在 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)))