2013-05-05 4 views
9

जावा में Class<?> और Class<Object> के बीच अंतर क्या है? AFAIK जावा एरर <?> को इसके ऊपरी बाउंड में बदलता है, जो इस मामले में Object होगा। तो इसके लिए क्या है?जावा <?> और कक्षा <Object> के बीच जावा

+2

Intuitively रखा जा सकता है के रूप में जगह में प्रयोग करने योग्य है, यह 'से कुछ और एक' कक्षा 'बनाने की गलत लगता है Object.class'। मुख्य रूप से, क्योंकि यह मुझे कई, कई सवाल है कि के रूप में हैं की याद दिलाता है "मैं एक' सूची 'लेकिन जावा मुझे नहीं करने के लिए एक' सूची 'प्रदान करना चाहते हैं।" कोड लिखते समय, आपको मुख्य रूप से परवाह नहीं करना चाहिए कि जेनेरिक क्या मिटाएंगे - जेनेरिकों का पूरा बिंदु संकलक को कुछ प्रकार के चेक * करने से पहले * मिटा दिया जाना चाहिए। – millimoose

+0

संभावित डुप्लिकेट [बीच क्या अंतर है? और जावा जेनेरिक में ऑब्जेक्ट?] (http://stackoverflow.com/questions/678822/what-is-the-difference-between-and-object-in-java- जेनरिक्स)। यह भी देखें [जावा: सूची, सूची , सूची , सूची , और सूची के बीच अलग] (http://stackoverflow.com/questions/6231973/java-different-between-list-list-listt-liste-and -listobject) –

+0

मुझे लगता है कि यह http://docs.oracle.com/javase/tutorial/java/generics/unboundedWildcards.html अगर मैं सही तरीके से प्रश्न समझ गया तो यह बहुत अच्छी तरह से बताता है। – arynaq

उत्तर

6

अंतर यह है कि Collection<String>Collection<Object> की एक उप-प्रकार नहीं है Collection<?> एक तर्क जहां किसी भी संग्रह

+1

कक्षा निश्चित रूप से सभी संग्रहों का एक सुपर प्रकार नहीं है। सबसे पहले, 'कक्षा' के संग्रह के साथ कुछ लेना देना नहीं है। यहां तक ​​कि आप सभी 'वर्ग' के सुपर प्रकार का मतलब भी है, यह अभी भी गलत है। जेनेरिक में वाइल्डकार्ड के बारे में कुछ अतिरिक्त पढ़ना है। –

+0

यह तय है, बेहतर है कि वोट लेने के नीचे – aaronman

+2

बंद क्या इस – aaronman

संबंधित मुद्दे