And*_*ong 1 java functional-programming coding-style optional
什么是惯用的,最小的(也许是功能性的)方式来说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();
}
Run Code Online (Sandbox Code Playgroud)
但是我的同事们编写的周围代码似乎使用了很多,我认为可能被称为"功能"样式链接.例如,
String externalTraffickedStateClauses = StringUtils.defaultIfBlank(
externalTraffickedStateQueries.stream().collect(Collectors.joining(" OR ")), "false");
Run Code Online (Sandbox Code Playgroud)
和
SORTORDERBY orderBy = orderByMaybe.orElse(DEFAULT_ORDER_BY);
Run Code Online (Sandbox Code Playgroud)
所以,我想,以符合自己的风格,就像我能,即链stream
,filter
,orElse
等不知道这是因为我从C++背景的还是因为我的学习收获是已经过时,但是这仍然是很对我不熟悉
这会做你想要的吗?
return queryMaybe
.filter(query -> !query.isEmpty())
.map(query -> "query_str = " + query)
.orElse("true")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51 次 |
最近记录: |