說我有下面的代碼使用多個地圖功能與在Java流
data.stream()
.map(x -> {
Object a = maybeReturnsNull(x);
return a == null ? defaultValue : a;
})
我有一些功能可能會返回null
在地圖中的語句塊,而我把它應用到一個流的元素。然後我想確保將任何null
結果改爲某個默認值。使用兩個映射之間是否存在顯着差異,如下例所示,與使用上一個定義輔助變量a
並在lambda表達式中使用代碼塊的示例相比?
data.stream()
.map(x -> maybeReturnsNull(x))
.map(x -> x == null ? defaultValue : x)
是否有避免使用帶有lambda函數的塊語句的標準?
或'.MAP(這:: maybeReturnsNull).MAP(可選:: ofNullable).MAP(鄰 - > o.orElse(默認值))' – assylias
@assylias:即使它不在性能上有所不同,我認爲單個'.map(x - > Optional.ofNullable(maybeReturnsNull(x))。orElse(defaultValue))'應該優先於這裏的三個映射步驟。但是,這仍然是一個口味問題... – Holger