java - 如何在 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
但这会导致错误。我能做些什么?
解决方案
您可以使用 lambda 并发送 Math.pow(n,2)
像这样:
Stream.of(1.1,1.2,1.3).map(n -> Math.pow(n,2))
推荐阅读
- javascript - 如何增加向上滚动的计数
- java - 在 PreferenceManager.setDefaultValues() 上获取 ClassCastException
- ajax - 使用 AJAX 时的神秘 401 挑战
- java - Eclipse 无法启动 chrome 驱动
- php - Yii2 编辑时活动表单图像上传验证问题
- javascript - Fire-base 更新后从网站表中删除旧数据
- java - 在 JAVA 中从 SOAP 响应中捕获附件
- html -
标签以不同的高度呈现 - azure - 如何在 Azure 上安装元数据库 docker 映像
- java - 按键的特定值过滤对象的数组列表