2
假设我要提供默认值,如果输入值为空,但希望仍在处理Optional
类型,而不是目标类型,像这样:我不能用.or
,因为它不是否有Java 8 .or()返回可选的现值或默认值?
Optional.of(testedValue == null ? testedValue : "").map(String::trim)...
注返回可选
假设我要提供默认值,如果输入值为空,但希望仍在处理Optional
类型,而不是目标类型,像这样:我不能用.or
,因为它不是否有Java 8 .or()返回可选的现值或默认值?
Optional.of(testedValue == null ? testedValue : "").map(String::trim)...
注返回可选
您可以嵌套另一个可选:
Optional.of(
Optional.ofNullable(input).orElse("")
).map(String::trim);
这相当于
Optional.of(
Optional.ofNullable(input).orElse("").trim()
);
因此,如果您继续执行更多的处理步骤,而这些处理步骤本身不会导致任何价值,那么这样做的好处是。
我宁愿'Optional.of(Optional.ofNullable(输入).MAP(字符串:: TRIM).orElse( “”))',因为在调用'一个空'String' trim'没有任何意义。也许整个包装成另一种'一旦了解... – Holger 2014-12-05 16:04:15
调用'TRIM()'上一个空字符串Optional'变得过时是非常便宜,有一个很好的机会,'地图(字符串::修剪)'方法实际上是更贵。对于其他情况可能会有所不同。 – 2014-12-05 21:02:18
只是抛出另一种选择(嘿)到桩:'Optional.ofNullable(输入).MAP(可选::).orElse(Optional.of( “”))' – Misha 2014-12-06 07:53:30