मैंने सोचा था कि जावा शॉर्ट सर्किट मूल्यांकन किया था, अभी तक इस लाइन अभी भी एक नल पॉइंटर एक्सेप्शन फेंक जाता है:जावा शॉर्ट सर्किट मूल्यांकन
if((perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey()))) {
इस मामले perfectAgent
null
है, तो मैं बस पूरे अभिव्यक्ति false
लौटना चाहते , लेकिन मेरा ऐप अभी भी इस लाइन पर एक NullPointerException के साथ दुर्घटनाग्रस्त है।
संपादित करें, सामान्य प्रतिक्रिया:
perfectAgent
के बाद से, null
, &&
के अधिकार के लिए कुछ भी नहीं मार डाला जाना चाहिए है, क्योंकि यह असंभव है अभिव्यक्ति सच होने के लिए। इस बिंदु पर, perfectAgent.getAddress()
निष्पादित करना असंभव है क्योंकि perfectAgent
में वैध संदर्भ नहीं है (यह शून्य और सभी है)। मैं शॉर्ट सर्किट मूल्यांकन का उपयोग करने की कोशिश कर रहा हूं ताकि अलग-अलग कथन में नल की जांच न हो क्योंकि तर्क अधिक गड़बड़ कर देता है।
संपादित 2 (या, मैं मूर्ख हूं): हाँ, जीवन में कई चीजों की तरह आप दुनिया को यह घोषणा करने के बाद सही जवाब देते हैं कि आप एक मूर्ख हैं। इस मामले में, मैंने कुछ और करने के दौरान एक्लिप्स के ऑटोबल्ड को बंद कर दिया था और इसे वापस चालू नहीं किया था, इसलिए मैं कक्षा फाइलों को डीबग कर रहा था जो मेरे स्रोत से मेल नहीं खाती थीं।
क्या आपने जांच की है कि यह प्रविष्टि शून्य नहीं है? –
प्रविष्टि शून्य नहीं है। – Donnie
यदि 'perfectAgent'' null' है तो वास्तव में उस शेष पंक्ति को निष्पादित नहीं किया जाना चाहिए। इसके साथ कोई समस्या नहीं दिख रही है क्योंकि यह अब है:/ – Joey