【发布时间】:2017-10-07 01:14:06
【问题描述】:
这是一个简单的类来说明我的问题:
package com.example;
import java.util.function.*;
public class App {
public static void main(String[] args) {
App a1 = new App();
BiFunction<App, Long, Long> f1 = App::m1;
BiFunction<App, Long, Void> f2 = App::m2;
f1.apply(a1, 6L);
f2.apply(a1, 6L);
}
private long m1(long x) {
return x;
}
private void m2(long x) {
}
}
f1,引用App::m1,并在f1 对apply 的调用中绑定到a1,工作得非常好——编译器很高兴,并且可以通过 f1.apply 进行调用正好。
f2,引用App::m2,不起作用。
我希望能够定义对没有返回类型的未绑定非静态方法的方法引用,但我似乎无法使其工作。
【问题讨论】:
-
又一个受害者
void != Void:)
标签: java java-8 java-stream void method-reference