Void
का सबसे आम उपयोग प्रतिबिंब के लिए है, लेकिन यह एकमात्र ऐसा स्थान नहीं है जहां इसका उपयोग किया जा सकता है।
void
एक ऐसा कीवर्ड है जिसका अर्थ है कि किसी फ़ंक्शन का कोई मूल्य नहीं होता है।
java.lang.Void
एक संदर्भ प्रकार है, उसके बाद निम्न मान्य है:
Void nil = null;
(अब तक यह दिलचस्प नहीं है ...)
एक परिणाम के प्रकार के रूप में (की वापसी मूल्य के साथ एक समारोह Void
टाइप करें) इसका मतलब है कि फ़ंक्शन * हमेशा * वापसी null
(यह null
के अलावा कुछ भी वापस नहीं कर सकता है, क्योंकि Void
में कोई उदाहरण नहीं है)।
Void function(int a, int b) {
//do something
return null;
}
मैं एक समारोह है कि हमेशा रिटर्न अशक्त क्यों चाहते हैं?
जेनिक्स के आविष्कार से पहले, मेरे पास Void
के लिए उपयोग का कोई मामला नहीं था।
जेनेरिक के साथ, कुछ दिलचस्प मामले हैं। उदाहरण के लिए, Future<T>
अन्य धागे द्वारा किए गए एसिंक्रोनस ऑपरेशन के परिणामस्वरूप धारक है। Future.get
ऑपरेशन मान (T
टाइप करें) वापस कर देगा, और गणना के बाद तक ब्लॉक होगा।
लेकिन ... अगर वापस लौटने के लिए कुछ भी नहीं है तो क्या होगा? सरल: Future<Void>
का उपयोग करें। उदाहरण के लिए, Google App Engine में Asyncronous Datastore सेवा delete
ऑपरेशन Future<Void>
देता है।get()
उस भविष्य पर लागू किया गया है, null
के बाद वापस लौटा दिया गया है। कोई Callable एस के साथ एक समान उदाहरण लिख सकता है।
अन्य उपयोग केस Map
मूल्यों के बिना है, यानी Map<T,Void>
। ऐसा नक्शा Set<T>
जैसा व्यवहार करता है, तो यह उपयोगी हो सकता है जब Set
के बराबर कार्यान्वयन नहीं होता है (उदाहरण के लिए, WeakHashSet
नहीं है, तो कोई WeakHashMap<T,Void>
का उपयोग कर सकता है)।
यह मदद चाहते हैं, तो हम कोड है कि तोड़ने गया था देख सकता था। –
मैं एक छोटा स्निपेट जोड़ने जा रहा हूं। बस इसे – Josh
साफ़ करें जिस तरह से आप myAsyncTask.execute (नया शून्य [1]) भी आज़मा सकते हैं; = डी –