मैं थोड़ा उलझन में हूं: मेरे पास एक फ़ंक्शन है, जो ऑब्जेक्ट को तर्क के रूप में लेता है। लेकिन संकलक शिकायत नहीं करता है अगर मैं सिर्फ एक आदिम पास करता हूं और यहां तक कि बूलियन ऑब्जेक्ट के रूप में एक बूलियन आदिम को भी पहचानता हूं। ऐसा क्यों हैं?जावा: बूलियन इंस्टेंस ओफ बूलियन?
public String test(Object value)
{
if (! (value instanceof Boolean)) return "invalid";
if (((Boolean) value).booleanValue() == true) return "yes";
if (((Boolean) value).booleanValue() == false) return "no";
return "dunno";
}
String result = test(true); // will result in "yes"
नोट करें कि एक बुलियन कभी भी बूलियन का उदाहरण नहीं है। आप ऑपरेटर के उदाहरण के लिए कभी भी आदिम नहीं पारित कर सकते हैं। आपके बूलियन आदिम ने कभी भी इस विधि में प्रवेश नहीं किया, मुक्केबाजी तब हुई जब आमंत्रण हुआ और विधि आमंत्रण रूपांतरण हुआ! – Mishax