我有以下代码:
@Test
public void testAverageFromArray() {
final Double[] dbls = { 1.1, 1.2, 1.3, 1.4, 1.5 };
final double av = Stream.of(dbls).mapToDouble(d -> d).average().getAsDouble();
assertEquals(1.3, av, 0);
}
Run Code Online (Sandbox Code Playgroud)
问题:是否可以用其他语法替换d -> d lambda?看来没必要。
*我不确定这个问题的标题 - 如果不合时宜,请编辑。
谢谢
lambdad -> d
并不是没有必要的。发生的情况是您需要提供一个函数T -> double
。事实上d -> d
它是一个函数Double -> double
,因为拆箱是自动完成的(从 Java 5 开始)。
您始终可以将其替换为方法引用,.mapToDouble(Double::doubleValue)
以明确它为您正在处理的 Double 实例拆箱了 double 值。
归档时间: |
|
查看次数: |
1955 次 |
最近记录: |