java - 以函数方式重写嵌套的三元运算符
问题描述
我有以下代码:
String firstString = "sth";
String secondString = "sthElse";
String stringsSpecialConcat = String.format("%s<br>%s", firstString, secondString);
boolean isFirstStringNotBlank = StringUtils.isNotBlank(firstString);
boolean isSecondStringNotBlank = StringUtils.isNotBlank(secondString);
return isFirstStringNotBlank ? (isSecondStringNotBlank ? stringsSpecialConcat : firstString) : (isSecondStringNotBlank ? secondString : "")
您能否通过函数式编程帮助我简化上述内容?
我想使用类似的东西
Stream.of(firstString, secondString).collect(joining(""))
解决方案
这……其实还不错。你能做的最好的就是
Stream.of(firstString, secondString)
.filter(StringUtils::isNotBlank)
.collect(joining("<br>"));
您可能会也可能不会觉得更简单。
推荐阅读
- python - 空列表和空 CSV 文件
- vba - VBA将范围转换为大写
- lotus-notes - LotusScript NotesHTTPRequest 获取方法问题
- python - 通过 lambda 与 RDS 建立连接后 Python mysql 连接超时
- javascript - 通过jquery删除输入字段值
- javascript - 如何使用 JavaScript 事件检查我的视图页面是否不在顶部?
- apache - htaccess 将丢失的 bundle.*.js 版本重定向到 bundle.js 文件
- python - Geopandas 中的 Winkel Triplel 投影
- typescript - 在 TypeScript 中键入匿名对象的属性
- angular - 打字稿错误:找不到“对象”类型的不同支持对象“[对象对象]”。NgFor 仅支持绑定到 Iterables,例如 Arrays