करने के लिए एक स्थिर संदर्भ नहीं बना सकता
, क्यों विधि File::isHidden
करने के लिए एक गैर स्थैतिक विधि-संदर्भ गुजर ठीक है
लेकिन एक गैर स्थैतिक विधि MyCass::mymethod
को विधि संदर्भ गुजर - मुझे "गैर स्थैतिक विधि का स्थिर संदर्भ नहीं दे सकता"?विधि संदर्भ। किसी को मेरे लिए व्याख्या कर सकते हैं गैर स्थैतिक विधि
public static void main(String[] args) {
File[] files = new File("C:").listFiles(File::isHidden); // OK
test(MyCass::mymethod); // Cannot make a static reference to the non-static method
}
static interface FunctionalInterface{
boolean function(String file);
}
class MyCass{
boolean mymethod(String input){
return true;
}
}
// HELPER
public static void test(FunctionalInterface functionalInterface){}
आप 'MyClass' को 'स्थिर' विधि (जैसे' main') से तत्काल नहीं कर सकते क्योंकि यह एक _non-static_ आंतरिक वर्ग है। आपको कक्षा को स्थैतिक घोषित करना होगा। मुझे लगता है कि मूल उदाहरण में कोड कक्षा के अंदर लपेटा गया है। –