gpt4 book ai didi

java - Java 8 中列表为空时如何返回 null?

转载 作者:行者123 更新时间:2023-11-29 07:25:07 25 4
gpt4 key购买 nike

如果作为参数传递的列表为,而不使用 if 语句,我该如何更改此方法以使其返回 null

 default String getFiltersExpression(List<WorklistViewDto.Filter> filters) {
return Optional.ofNullable(filters)
.map(Collection::stream)
.orElseGet(Stream::empty)
.map(WorkListViewMapper::formatValue)
.map(f -> f.getCriteria() + f.getOperator() + f.getValue())
.collect(Collectors.joining(" AND ", "(", ")"));
}

最佳答案

您可以使用 Collectors.collectingAndThen 来完成.

.collect( 
Collectors.collectingAndThen(
Collectors.joining(),
str->{
if(str.isEmpty()) return null;
return str;
}
)
);

鉴于 OP 的加入语句,Collectors.joining("AND ", "(", ")") 我们可以修改上面的内容。

Collectors.collectingAndThen(
Collectors.joining(" AND "),
str->{
if(str.isEmpty()) return null;
return "(" + str + ")";
})

关于java - Java 8 中列表为空时如何返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54766588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com