Lia*_*ris 6 java lambda intellij-idea java-8 method-reference
我有一个静态方法,它接受参数Stream<Double> stream.来自a arraylist.stream()或Arrays.stream(array).
该方法的工作是返回可被三整除的所有整数的总和.
return stream.filter(i -> i.intValue() % 3 == 0).mapToInt(i -> i.intValue()).sum()
此方法有效,但IntelliJ建议如下:
此检查报告lambda,可以用方法引用替换.
我不太熟悉方法引用,尤其是使用类名方案的引用实例方法.
我尝试了下面的错误.
stream.filter(i -> i.intValue() % 3 == 0).mapToInt(Integer::intValue).sum()
有什么建议?
正如你所说的参数流是Double的类型,所以你应该这样做
stream.mapToInt(Double::intValue).filter(i -> i % 3 == 0).sum()
Run Code Online (Sandbox Code Playgroud)
因为你正在调用Double类的intValue函数.
| 归档时间: |
|
| 查看次数: |
6921 次 |
| 最近记录: |