Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是成语;功能性;选修课的方式<;字符串>;如果为null或空,则返回默认字符串,否则返回修改后的字符串?_Java_Functional Programming_Coding Style_Optional - Fatal编程技术网

Java 什么是成语;功能性;选修课的方式<;字符串>;如果为null或空,则返回默认字符串,否则返回修改后的字符串?

Java 什么是成语;功能性;选修课的方式<;字符串>;如果为null或空,则返回默认字符串,否则返回修改后的字符串?,java,functional-programming,coding-style,optional,Java,Functional Programming,Coding Style,Optional,什么是惯用的、最简单的(也许是功能性的?)方式来选择一个可选的并说 返回默认字符串,例如,如果为null或空,则返回true,或者 返回修改后的字符串,例如query\u str=否则 当然,这是我笨拙的尝试: Optional<String> queryMaybe; // Given. String clause = "true"; if (queryMaybe.isPresent() && !queryMaybe.get().isEmpty()) { cl

什么是惯用的、最简单的(也许是功能性的?)方式来选择一个
可选的
并说

  • 返回默认字符串,例如,如果为null或空,则返回
    true
    ,或者
  • 返回修改后的字符串,例如
    query\u str=
    否则
当然,这是我笨拙的尝试:

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


<> P> >我尽量尽量符合他们的风格,即链<代码>流<代码>,<代码>过滤器<代码>,<代码> ORSE/<代码>等。不确定是因为我来自C++背景还是因为我的学习已经过时了,但是这对我来说还是很陌生。

< P>这是你正在寻找的吗?< /P>
return queryMaybe
    .filter(query -> !query.isEmpty())
    .map(query -> "query_str = " + query)
    .orElse("true")

这符合你的要求吗

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

是的,看起来很像!这个有名字吗?JDK8+上的Lambda表达式(例如函数式)使用String#isEmpty,而不是将其与空字符串进行比较。是的,这看起来很像样式!这个有名字吗?JDK8+上的(例如函数)Lambda表达式使用String#isEmpty,而不是将其与空字符串进行比较。
return queryMaybe
    .filter(query -> !query.isEmpty())
    .map(query -> "query_str = " + query)
    .orElse("true")