नहीं है, तरीकों जो खोज के लिए आप सटीक मानकों की उम्मीद है। तो जब आप प्रतिबिंब एपीआई के खोजने/खोज विधियों का उपयोग करके एक कन्स्ट्रक्टर, विधि या फ़ील्ड की तलाश करते हैं, तो एपीआई मिलान खोजने के लिए equals()
का उपयोग करता है।
यदि आपको उसी तर्क की आवश्यकता है जो जावा कंपाइलर उपयोग करेगा, तो आपको FEST Reflect या commons beanutils जैसे ढांचे का उपयोग करने की आवश्यकता होगी। या आपको getConstructors()
पर कॉल करना होगा और अपना खुद का फ़िल्टर कोड लिखना होगा।
पहली नज़र में, यह बेवकूफ लगता है: यदि जावा कंपाइलर ऐसा कर सकता है, तो प्रतिबिंब API क्यों नहीं हो सकता? दो कारण हैं: सबसे पहले, जावा रनटाइम को यह जानने की आवश्यकता नहीं है कि किस विधि को कॉल करना है क्योंकि संकलक ने पहले से ही सही विधि का चयन किया है।
दूसरा कारण यह है कि प्रतिबिंब एपीआई हमेशा "दूसरा सर्वश्रेष्ठ" था। लेकिन लक्ष्य कभी नहीं था यह वास्तव में आसान/अनुकूल उपयोग करने के लिए बनाने के लिए यह सब कुछ कर सकते हैं (कम से कम, कि मैं हर बार जब मैं इसका इस्तेमाल :-)
स्रोत
2012-11-22 08:51:58
'B.class.getConstructors का उपयोग कर के बारे में क्या()' , उन लोगों को ढूंढें जो वास्तव में एक तर्क लेते हैं, और जांचें कि 'एक्लास' 'क्या यह अस्वीकार्य है? –
बी का कन्स्ट्रक्टर सार्वजनिक है? –
arne.b यह करने का एक तरीका है लेकिन मैंने सोचा कि यह वास्तव में आसान हो सकता है। नंदकुमार हां, यह सार्वजनिक है। –