"हाय, एमिगो! मेरे पास आपके लिए एक और छोटा और दिलचस्प विषय है। शून्य प्रकार।"
"और आपको इस तरह के प्रकार की आवश्यकता क्यों होगी? मेरा मतलब है, मैं शून्य को समझता हूं: यह कार्यों और प्रक्रियाओं को संरेखण में लाना है। हमारे पास प्रक्रियाएं नहीं हैं, लेकिन हमारे पास ऐसे कार्य हैं जो शून्य (कुछ नहीं) लौटाते हैं।"
"हाँ, लेकिन क्या आपको याद है कि ऐली ने हाल ही में आपको कॉल करने योग्य इंटरफ़ेस के बारे में बताया था?"
"हाँ।"
"और क्या आपको यह भी याद है कि आपको एक प्रकार के तर्क के रूप में क्या पास करना है?"
"हां, रिटर्न वैल्यू का प्रकार:"
class EmptyJob implements Callable
{
public String call() throws Exception
{
return null;
}
}
"ठीक है। और क्या होगा यदि आप चाहते हैं कि कॉल विधि एक int लौटाए? तब क्या?"
"अब मुझे पता है कि इसके लिए ऑटोबॉक्सिंग है। मैं सिर्फ एक पूर्णांक पास करूंगा, और सब कुछ घड़ी की कल की तरह चलेगा:"
class EmptyJob implements Callable
{
public Integer call() throws Exception
{
return null;
}
}
"बहुत बढ़िया। और क्या होगा अगर विधि को कुछ भी वापस नहीं करना चाहिए?"
"मैं आपकी बात समझ गया। फिर हम शून्य को शून्य के समकक्ष के रूप में उपयोग करते हैं?"
"हां।"
"क्या रिटर्न वैल्यू को ऑब्जेक्ट बनाना और फिर शून्य वापस करना आसान नहीं होगा?"
"कभी-कभी, लेकिन हमेशा नहीं।"
"आप जानते हैं कि जब आपने ऑब्जेक्ट लिखा था तो आप वास्तव में यहाँ शून्य वापस करना चाहते थे, लेकिन एक अन्य प्रोग्रामर को यह पता नहीं हो सकता है और वह सोचेगा कि आप अशक्त क्यों लौट रहे हैं।"
"या विधि को कॉल करने वाला कोड वापसी मूल्य की अपेक्षा करेगा।"
"लेकिन जब आप शून्य लिखते हैं, तो हर कोई तुरंत समझ जाता है कि यह शून्य के लिए एक आवरण है, भले ही आपको अभी भी शून्य वापस करना पड़े।"
class EmptyJob implements Callable
{
public Void call() throws Exception
{
return null;
}
}
"हम्म। आप सही कह रहे हैं। एक विधि जो हमेशा अशक्त होती है, प्रश्न उठाती है। लेकिन शून्य के रूप में घोषित विधि आगे स्पष्टीकरण की आवश्यकता के बिना ऐसा कर सकती है।"
"कोड पठनीयता पहले आती है। मुझे जावा पसंद है!"
"बहुत बढ़िया। मुझे खुशी है कि आपको यह पसंद आया। हमने आज का काम पूरा कर लिया है।"
GO TO FULL VERSION