首页 > 解决方案 > 如何在 Java 中传递带参数的方法引用?

问题描述

我不知道它的确切名称(我猜是方法参考),但这就是我所说的。假设我想取双精度数组中所有双精度的平方根。然后,如果调用数组arr,我可以这样做:

Arrays.stream(arr).map(Math::sqrt). // ... box it and stuff

但是,如果我想对 int 数组中的每个数字求平方,我正在考虑使用Math.pow(num, 2)as 方法。但是,Math.pow有第二个参数,但我知道它总是 2。所以我想我可以做这样的事情:

Arrays.stream(arr).map(Math::pow(2)). // ... box it and stuff

但这会导致错误。我能做些什么?

标签: javalambdamethod-reference

解决方案


您可以使用 lambda 并发送 Math.pow(n,2)

像这样:

Stream.of(1.1,1.2,1.3).map(n -> Math.pow(n,2))

推荐阅读