我有一个静态方法,它接受参数
该方法的作用是返回所有可被三整除的整数的总和。
我尝试了以下代码,但出现错误。
Stream<Double> stream
,可以来自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()
你有什么建议吗?
i
是一个 Double 类型的变量,所以你应该使用Double::intValue
方法。IntelliJ 不仅会检查代码,还会建议更改方法。只需按下 alt + enter 即可。 - mrjink.mapToInt(Double::intValue).filter(i -> i % 3 == 0)
。 - Holgeri.intValue() % 3 == 0
已经完美地实现了这个功能。 - Holger