एंडी का जवाब निश्चित रूप से सही है, लेकिन मैं थोड़ा सा बिंदु पर विस्तार करना चाहता हूं।
.class
क्लास ऑब्जेक्ट का उदाहरण प्राप्त करने के लिए एक विशेष वाक्यविन्यास है। इसका उपयोग तब किया जा सकता है जब केवल प्रकार उपलब्ध हो और संबंधित वस्तु का कोई उदाहरण न हो। इसका उपयोग किसी भी ठोस प्रकार के नाम से किया जा सकता है, जिसमें सरणी और प्राइमेटिव शामिल हैं। उदाहरण के लिए, int.class
मान्य है।
क्लास ऑब्जेक्ट प्राप्त करने के लिए इस तरह (और अन्य तरीकों) पुराने Sun reflection API docs में दस्तावेज किए गए हैं।
विशेष .class
वाक्यविन्यास अक्सर सामान्य कोड में "प्रकार टोकन" के रूप में बेवकूफ उपयोग में दिखाई देता है। .class
के साथ प्राप्त एक वर्ग शाब्दिक को एक प्रकार टोकन कहा जाता है जब "संकलन-समय और रनटाइम प्रकार की जानकारी दोनों को संवाद करने के तरीकों के बीच पारित किया जाता है" (Joshua Bloch's Effective Java 2e, पृष्ठ 142)।
स्रोत
2010-07-20 23:42:18
जावा के उपयोग पर क्लास सौदे के बारे में अधिक जानकारी है? मैं समझता हूं कि इसका उपयोग करने का नतीजा क्या है और ऐसा क्यों है, लेकिन जावा इस कार्यान्वयन का उपयोग क्यों करता है? नया MyService() जैसे कॉल करने के बजाय यह वाक्यविन्यास भी मौजूद क्यों है। – Falmarri
मैं कोई विशेषज्ञ नहीं हूं, लेकिन मुझे संदेह है कि एंड्रॉइड के आर्किटेक्चर के साथ स्पष्ट गतिविधि या सेवा ऑब्जेक्ट सृजन के साथ डेवलपर की बातचीत को कम करने या छिपाने की कोशिश कर रहा है। विशेष रूप से क्यों नहीं जानते, लेकिन मैं पता लगाने की कोशिश करूंगा। –
यह आम तौर पर जावा जेनरिक के प्रकार-मिटा के कारण किया जाता है। कक्षा के रन-टाइम प्रकार को कैप्चर करने के लिए आप पैरामीटर प्रकार क्लास के साथ किसी विधि को क्लास पास कर सकते हैं, क्योंकि आप सुरक्षित पैरामीटर के साथ सुरक्षित रूप से अधिक नहीं कर सकते हैं। –