imp*_*nte 4 java int filter java-8 java-stream
IntelliJ 一直告诉我 Double[] 是一个错误:方法引用中的返回类型错误:无法将 Double[] 转换为 A[]。我使用了 double[],删除了 ::new 静态引用,但仍然出现相同的错误。如何解决此错误?我试图在过滤结果中取回 1.000。
double[] pricesDoubleArr = {1.000,2.800,4.900};
double[] pricesDoubleFiltered = Arrays.stream(pricesDoubleArr)
.filter(x -> x != Math.round(x))
.toArray(Double[]::new);
Run Code Online (Sandbox Code Playgroud)
只需使用.toArray();
without Double[]::new
,因为您的流从双精度数组开始:
double[] doubles = Arrays.stream(pricesDoubleArr)
.filter(x -> x != Math.round(x))
.toArray();
Run Code Online (Sandbox Code Playgroud)
我不确定你从代码中看什么,但从你的问题来看:
我试图在过滤结果中取回 1.000。
我认为您正在寻找:
.filter(x -> x == (double) (int) x)
Run Code Online (Sandbox Code Playgroud)