यह एक NullPointerException फेंक देते हैं।
इस का कारण यह है कि आप एक को पूर्णांक मान के ऑटो unboxing पर भरोसा कर रहे हैं है int आदिम प्रकार। जावा ऑब्जेक्ट पर .intValue()
को आंतरिक रूप से कॉल करके करता है, जो शून्य है।
या तो यह एक अच्छा अभ्यास है या नहीं ... मैं ऐसा करने के खिलाफ सलाह दूंगा, जब तक कोड केवल आपके द्वारा उपयोग नहीं किया जाता और आप बेहद अच्छी तरह से व्यवहार कर रहे हैं, यह सुनिश्चित कर लें कि आप केवल इस विधि का रिटर्न वैल्यू इंटीजर मानों को असाइन करें, न कि
यदि आपका कोड दूसरों द्वारा उपयोग किए जाने वाले lib में समाप्त होता है, तो यह सुरक्षित नहीं है, और मैं स्पष्ट रूप से एक अपवाद, अच्छी तरह से प्रलेखित, और कॉलर के हिस्से पर रक्षात्मक कोडिंग की अनुमति देता हूं।
नल के आविष्कारक टोनी होरे ने इसे अपनी अरब डॉलर की गलती कहा। सामान्य रूप से 'शून्य' से बचें। –
यदि आपको यह जानना आवश्यक है कि मान अज्ञात है तो यह बुरा व्यवहार नहीं है। 'NullPointerException' के लिए अपवाद हैंडलिंग अनुपस्थिति को प्रतिबिंबित करने के लिए आपके कोड में शामिल किया जा सकता है, नल INT को शून्य में परिवर्तित कर सकता है, आदि [NULL] (http://en.wikipedia.org/wiki/Null_%28SQL%29) है एक आवश्यक बुराई, ऐसे मामले हैं जहां आपको किसी अज्ञात या मूल्य की अनुपस्थिति को स्पष्ट रूप से पहचानने की आवश्यकता होती है, जैसे कि: मैं कितनी बार शादी करूँगा, मौत की तारीख इत्यादि। –
@ टॉमहॉविन-टकलाइन इसलिए हम सभी जानते हैं कि वह था कम से कम एक बार गलत, जब वह न केवल बहस के लिए बल्कि विषय से भी दूर था। यह सवाल यह है कि यह प्रश्न भाषा डिजाइन और शून्य के बारे में नहीं है, जावा भाषा का एक बहुत ही अभिन्न अंग है जो भाषा डिजाइनर का मानना भी असफल है – josefx