这里有一个简单的类,说明我的问题未绑定的非静态方法:的Java 8 - 我怎么声明的方法引用返回void
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
,并且被绑定到a1
在f1
的号召,apply
,工作完全正常 - 编译器是幸福的呼叫可以通过f1.apply就好制成。
f2
,指App::m2
,不能正常工作。
我想能够定义一个方法引用到一个没有返回类型的非绑定非静态方法,但我似乎无法使它工作。
还有的另一个受害者'无效!= Void' :) – Dariusz