जावा 8 के java.util.functionपैकेज में, हमारे पास:
- कार्य : एक तर्क लेता है, एक परिणाम उत्पन्न करता है।
- उपभोक्ता : एक तर्क लेता है, कुछ नहीं पैदा करता है।
- आपूर्तिकर्ता : कोई तर्क नहीं लेता है, एक परिणाम पैदा करता है।
- ... : अन्य मामले आदिम, 2 तर्क आदि से निपटने के ...
लेकिन मुझे " कोई तर्क नहीं, कुछ नहीं पैदा करता है " मामले को संभालने की आवश्यकता है ।
इसमें इसके लिए कुछ भी नहीं है java.util.functionnal।
तो, सवाल यह है:
' एक फ़ंक्शन का क्या नाम है जो कोई तर्क नहीं लेता है और कुछ नहीं लौटाता है '?
जावा 8 में, इसकी परिभाषा यह होगी:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
निष्पादनकर्ता पहले से मौजूद है और इसका एक अन्य उद्देश्य है: " एक वस्तु जो प्रस्तुत किए गए कार्यों को निष्पादित करती है "। हस्ताक्षर मेल नहीं खाता ( execute(Runnable):void) और एक कार्यात्मक इंटरफ़ेस भी नहीं है ।
रनेबल मौजूद है, लेकिन यह थ्रेडिंग संदर्भ से दृढ़ता से जुड़ा हुआ है:
- पैकेज है
java.lang, नहींjava.util.function। - Javadoc में कहा गया है: " Runnable इंटरफ़ेस को किसी भी वर्ग द्वारा लागू किया जाना चाहिए, जिनके इंस्टेंस को एक थ्रेड द्वारा निष्पादित किया जाना है "।
- "रननेबल" नाम एक थ्रेड के अंदर कुछ रनिंग कोड का सुझाव देता है।
Runnableइस बिंदु पर javadoc पुराना है, क्योंकि एक Runnable का उपयोग अन्य वर्गों द्वारा भी किया जाता है Thread( Executorउदाहरण के लिए)।
Runnables केवल s के .run()द्वारा हो सकता है Thread। वास्तव में वे बहुत आम तौर पर सवाल में वर्णित उद्देश्य के लिए उपयोग किया जाता है
java.util.function पैकेज में कुछ नहीं मिला ।