首页 > 解决方案 > 以函数方式重写嵌套的三元运算符

问题描述

我有以下代码:

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(""))

标签: javafunctional-programmingjava-stream

解决方案


这……其实还不错。你能做的最好的就是

Stream.of(firstString, secondString)
  .filter(StringUtils::isNotBlank)
  .collect(joining("<br>"));

您可能会也可能不会觉得更简单。


推荐阅读