एक जिज्ञासा जिसे मैंने अभी एक समस्या के बजाय देखा है।एक टर्नरी ऑपरेटर संकलन के परिणामस्वरूप नल लौटने (जहां एक बूलियन की उम्मीद है) क्यों?
मैं
public boolean x() {
return null;
}
या इस लिखने की अनुमति दी नहीं कर रहा हूँ:
public boolean x() {
if (DEBUG) {
return true;
} else {
return null;
}
}
लेकिन मैं लिखने के लिए
public boolean x() {
return DEBUG ? true : null;
}
ऐसा क्यों है की अनुमति दी है? (यह अगर "और" शाखा लिया जाता है एक एनपीई फेंकने के लिए प्रकट होता है।)
धन्यवाद @ थिलो। स्पष्टीकरण के लिए: सवाल यह है कि, दो अन्य उदाहरणों के समान ही टर्नरी निर्माण क्यों खारिज नहीं किया जाता है? –
@ माइकलके फिर से, सिर्फ जिज्ञासा से बाहर, क्या आपने 'सार्वजनिक बूलियन एक्स() { "(DEBUG) { वापस लौटने की कोशिश की है; } वापसी शून्य; } '? –
संभावित डुप्लिकेट http://stackoverflow.com/questions/978324/java-ternary-immediate-if- मूल्यांकन? Java8 में – Jens