जावा 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
उदाहरण के लिए)।
Runnable
s केवल s के .run()
द्वारा हो सकता है Thread
। वास्तव में वे बहुत आम तौर पर सवाल में वर्णित उद्देश्य के लिए उपयोग किया जाता है
java.util.function
पैकेज में कुछ नहीं मिला ।