小编Bha*_*shi的帖子

为什么 Random::nextInt 在 java 中不允许作为方法引用?

所以我正在阅读泛型和函数式接口。显示了两种方法 - 使用 Lambda,使用方法引用。使用了以下示例:

Predicate<String> ref = String::isEmpty;
Run Code Online (Sandbox Code Playgroud)

Java 使用在运行时提供的参数作为调用 isEmpty 的实例。这是允许的,因为 isEmpty() 是 String 类中的一个实例方法并且不带任何参数。

我的问题是,当我使用以下代码行时,为什么会显示编译错误:

Supplier<Integer> ref2 = Random::nextInt;
Run Code Online (Sandbox Code Playgroud)

毕竟 nextInt() 是 Random 类中的实例方法,就像 String 类中的 isEmpty() 一样,它也不带参数。

java java-8

2
推荐指数
1
解决办法
90
查看次数

标签 统计

java ×1

java-8 ×1