這裏有一個簡單的類,說明我的問題未綁定的非靜態方法:的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