2014-12-05 52 views

回答

4

您可以嵌套另一个可选:

Optional.of(
    Optional.ofNullable(input).orElse("") 
).map(String::trim); 

这相当于

Optional.of(
    Optional.ofNullable(input).orElse("").trim() 
); 

因此,如果您继续执行更多的处理步骤,而这些处理步骤本身不会导致任何价值,那么这样做的好处是。

+1

我宁愿'Optional.of(Optional.ofNullable(输入).MAP(字符串:: TRIM).orElse( “”))',因为在调用'一个空'String' trim'没有任何意义。也许整个包装成另一种'一旦了解... – Holger 2014-12-05 16:04:15

+1

调用'TRIM()'上一个空字符串Optional'变得过时是非常便宜,有一个很好的机会,'地图(字符串::修剪)'方法实际上是更贵。对于其他情况可能会有所不同。 – 2014-12-05 21:02:18

+2

只是抛出另一种选择(嘿)到桩:'Optional.ofNullable(输入).MAP(可选::).orElse(Optional.of( “”))' – Misha 2014-12-06 07:53:30