यह स्निपेट NullPointerException
फेंकता है इस तथ्य के कारण कि यह एक आदिम प्रकार से अनबॉक्स किया गया है और Long.longValue()
कहा जाता है, है ना?NullPointerException में लंबे परिणामों के लिए नल-ऑब्जेक्ट को अनबॉक्सिंग, ठीक है?
Thats भी आसान है अगर आप इस तरह की स्निपेट को देखने के लिए:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
तो isn ':
long value = (Long) null;
लेकिन NullPointerException
इस तरह एक अधिक जटिल स्थिति में पाने के लिए और भी कठिन है जावा-कंपाइलर के लिए एक और अधिक आरामदायक अपवाद बनाने के लिए कोई संभावना नहीं है? मैं को जैसे संदेश के साथ पसंद करूंगा "आप एक नल-ऑब्जेक्ट को आदिम प्रकार में डालने की कोशिश कर रहे हैं, यह नहीं किया जा सकता है!"
क्या यह अधिक उपयुक्त नहीं होगा? तुम क्या सोचते हो? क्या यह रनटाइम पर भी संभव है? क्या हम इस कास्ट को निर्धारित करने में सक्षम हैं? मैंने अभी तक जावा बाइटकोड को नहीं देखा है। शायद यह एक समाधान में इस्तेमाल किया जा सकता है।
इस प्रश्न का उत्तर है: मैं जानना चाहता हूं कि यह व्यवहार प्राप्त करना संभव है या नहीं!
एनपीई मेरे लिए ठीक लग रहा है Optional.ofNullable है। शून्यता एनोटेशन मदद कर सकता है। (** अन ** मुक्केबाजी, बीटीडब्ल्यू।) –