यहाँ एक सरल वर्ग कि मेरी समस्या को दिखाता है के लिए एक विधि संदर्भ की घोषणा करते हैं:जावा 8 मैं कैसे एक अबाध गैर स्थैतिक विधि है कि रिटर्न शून्य
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
का जिक्र करते हुए, काम नहीं करता है।
मैं बिना किसी वापसी प्रकार के एक अनबाउंड गैर स्थैतिक विधि के विधि संदर्भ को परिभाषित करने में सक्षम होना चाहता हूं, लेकिन मैं इसे काम नहीं कर सकता।
फिर भी 'शून्य! = शून्य 'का एक अन्य शिकार :) – Dariusz