कई उपयोगों के लिए, मुझे नहीं लगता कि दर्पण है कि जावा प्रतिबिंब तरीके से अलग होगा । मिरर के बारे में सबसे महत्वपूर्ण बात यह है कि वे मानक ऑब्जेक्ट एपीआई से प्रतिबिंब एपीआई को कम कर देते हैं, इसलिए obj.getClass() के बजाय आप प्रतिबिंबित (obj) का उपयोग करते हैं। यह एक उचित रूप में छोटा सा फर्क है, लेकिन यह आप कुछ अच्छा चीज़ें प्राप्त होती है:
- वस्तु एपीआई प्रदूषित नहीं है, और वहाँ एक चिंतनशील विधि अधिभावी द्वारा प्रतिबिंब तोड़ने का कोई खतरा नहीं है।
- आप संभावित रूप से अलग दर्पण सिस्टम कर सकते हैं। कहें, एक जो निजी तरीकों तक पहुंच की इजाजत नहीं देता है। यह उपकरण के लिए बहुत उपयोगी हो सकता है।
- दर्पण प्रणाली को शामिल करने की आवश्यकता नहीं है। जेएस को संकलित करने के लिए यह महत्वपूर्ण हो सकता है। यदि मिरर का उपयोग नहीं किया जाता है तो कोड तक पहुंचने के लिए कोई आउट-ऑफ-बैंड नहीं है और छंटनी व्यवहार्य हो जाती है।
- रिमोट कोड पर काम करने के लिए दर्पण किए जा सकते हैं, केवल स्थानीय कोड नहीं, क्योंकि आपको प्रतिबिंबित वस्तु को दर्पण के समान अलगाव या वीएम में होने की आवश्यकता नहीं है।
जावा:
myObject.getClass().getMethods(); // returns an array
डार्ट:
reflect(myObject).type.methods; // returns a map
जावास्क्रिप्ट:
यहाँ जब एक वस्तु के तरीकों प्राप्त करने के लिए प्रयोग किया जाता है कैसे दर्पण जावा और जावास्क्रिप्ट में प्रतिबिंब की तुलना में अलग हैं
var methods = [];
for (var m in myObject) {
if (typeof m === 'function') {
methods.push(m);
}
}
स्रोत
2012-08-27 17:01:47
क्या आप संक्षेप में कर सकते हैं? –