java - 在 Java 8 中为什么我们不能使用方法引用将 Math.random() 转换为 Math::random
问题描述
这有效
Supplier<Double> random1 = () -> Math.random();
为什么这不起作用:
Supplier<Double> random2 = () -> Math::random
解决方案
仅使用方法参考将起作用,例如:
Supplier<Double> random2 = Math::random
因为它已经代表一个Supplier<Double>
.
另一方面,您使用的当前符号将表示Supplier
如下Supplier<Double>
:
Supplier<Supplier<Double>> random2 = () -> Math::random;
推荐阅读
- wpf - 在 wpf 中的用户控件中绑定控件的可见性
- c# - 如何防止 .Net 中的 SSRF
- primefaces - 在 primefaces 的文档查看器中显示上传的文档
- php - Wordpress 自定义 PHP AJAX 调用返回 400 Bad Request 并且不执行
- ios - AutoLayout - 无法同时满足 swift5 中的约束
- javascript - 从传单地图中删除指定的图层
- docker - SonarQube 项目在 docker 重启后消失
- loops - xquery 计数 for 循环内的 for 循环
- html5-canvas - 有没有比运行 getImageData 更快的方法来捕获画布像素值?
- android - 从android项目中删除所有未使用的资源不起作用