并在 null 或空时返回默认字符串,否则返回修改后的字符串?-6ren"> 并在 null 或空时返回默认字符串,否则返回修改后的字符串?-采用 Optional 的惯用的、最小的(也许是功能性的?)方法是什么?并说, 返回默认字符串,例如 true如果为 null 或为空,或者 返回修改后的字符串,例如 query_str = 否则。 -6ren">
gpt4 book ai didi

java - 什么是惯用的 "functional"方法来获取 Optional 并在 null 或空时返回默认字符串,否则返回修改后的字符串?

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

采用 Optional<String> 的惯用的、最小的(也许是功能性的?)方法是什么?并说,

  • 返回默认字符串,例如 true如果为 null 或为空,或者
  • 返回修改后的字符串,例如 query_str = <str>否则。

当然,还有我笨拙的尝试:

Optional<String> queryMaybe; // Given.
String clause = "true";
if (queryMaybe.isPresent() && !queryMaybe.get().isEmpty()) {
clause = "query_str = " + queryMaybe.get();
}

但是我的同事编写的周边代码似乎使用了很多我认为可能称为“函数式”风格的链接。例如,

String externalTraffickedStateClauses = StringUtils.defaultIfBlank(
externalTraffickedStateQueries.stream().collect(Collectors.joining(" OR ")), "false");

SORTORDERBY orderBy = orderByMaybe.orElse(DEFAULT_ORDER_BY);

所以,我正在努力尽可能地符合他们的风格, chain stream , filter , orElse等。不确定是因为我来自 C++ 背景还是因为我的学习已经过时,但这对我来说仍然很陌生。

最佳答案

这是否符合您的要求?

return queryMaybe
.filter(query -> !query.isEmpty())
.map(query -> "query_str = " + query)
.orElse("true")

关于java - 什么是惯用的 "functional"方法来获取 Optional<String> 并在 null 或空时返回默认字符串,否则返回修改后的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48743158/

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