यह पता चला है के रूप में, यह कानूनी नहीं संकलन समय प्रकार 'वस्तु' की अभिव्यक्ति के साथ एक आदिम तुलना करने के लिए है। JLS 15.21 स्पष्ट रूप से यह मनाही:
समानता ऑपरेटरों सांख्यिक प्रकार के दो ऑपरेंड कि परिवर्तनीय (§5.1.8) कर रहे हैं, या प्रकार बूलियन या बूलियन, की दो ऑपरेंड या दो ऑपरेंड कि में से प्रत्येक की तुलना करने के लिए इस्तेमाल किया जा सकता है या तो संदर्भ प्रकार या शून्य प्रकार। अन्य सभी मामलों का परिणाम संकलन-समय त्रुटि में होता है।
एक्लिप्स कंपाइलर जावा संस्करण की परवाह किए बिना त्रुटि को झंडे करता है।जावा 7 के लिए, ओरेकल जेडीके और ओपनजेडीके दोनों गलती से कोड को संकलित करने की अनुमति देते हैं। ओरेकल और ओपन जेडीके में यह bug संस्करण 8 में ठीक किया गया है।
संक्षेप में, यह भयानक तुलना स्पेक के अनुसार अवैध है और केवल भाषा संस्करण लक्ष्यों के एक विशेष सबसेट के लिए कंपेलरों के कुछ सबसेट पर संकलित होगी। जावा 4- या 8+ पर कभी काम नहीं करेगा। अन्य उत्तरों में संदर्भित कास्टिंग रूपांतरण केवल '=' ऑपरेटर पर लागू होते हैं, न कि '==' पर। 15.21.3 केवल दो संदर्भ संचालन पर लागू होता है।
स्रोत
2013-09-12 03:39:54
इस पिछली पोस्ट की जांच करें, [जावा 6 और जावा 7 ऑटोबॉक्सिंग में अंतर] (http://stackoverflow.com/questions/16119638/differences-in-auto-unboxing-between-java-6-vs-java-7) – nachokk