假设我有以下代码
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)
是否有关于在何处避免将 block 语句与 lambda 函数一起使用的标准?
最佳答案
哪个都好。选择一个对你来说更易读的。如果计算自然分解,就像这个一样,那么多张 map 可能更具可读性。有些计算不会自然分解,在这种情况下,您将陷入前者。在这两种情况下,您都不应该担心一个比另一个的性能要好得多;这在很大程度上是不考虑的。
关于java - 在 java 流中的映射中使用多个映射函数与 block 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31058755/