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