रियल दुनिया उदाहरण:
आप jdesktop 0.9 के साथ jdesktop 0.8 के साथ अपनी परियोजना है, लेकिन जहाज निर्माण, तो अपने कोड अभी भी 0.9 सुविधाओं का उपयोग करेगा, क्योंकि यह देर से बाध्यकारी का लाभ लेता है, यानी कोड जो आपका कोड कॉल करता है वह संस्करण है जो क्लास लोडर द्वारा लोड किया गया है, चाहे वह संस्करण जिसे संकलित किया गया हो। (यह लिंकर्स के विपरीत है, जो एप्लिकेशन में कॉल किए गए कोड के संकलन-समय संस्करण को एम्बेड करते हैं।)
प्रतिबिंब के लिए, मान लें कि आप जावा 1.5 और 1.6 को लक्षित करने का प्रयास कर रहे हैं, लेकिन टैब घटक का उपयोग करना चाहते हैं 1.6 यदि वे उपलब्ध हैं, तो आप setTabComponentAt
विधि खोजने के लिए JTabbedPane क्लास पर प्रतिबिंब का उपयोग कर अपनी उपस्थिति की जांच करेंगे। इस मामले में आप जावा 1.5 के खिलाफ निर्माण कर रहे हैं, जिसमें उन सुविधाओं को बिल्कुल नहीं है, इसलिए आप उन्हें सीधे कॉल नहीं कर सकते हैं या संकलन विफल हो जाएगा। हालांकि अगर अंत उपयोगकर्ता के सिस्टम पर आप 1.6 के खिलाफ दौड़ते हैं (देर से बाध्यकारी यहां खेलता है) तो आप कॉल विधियों के प्रति प्रतिबिंब का उपयोग कर सकते हैं जो 1.5 में मौजूद नहीं थे।
वे संबंधित हैं; प्रतिबिंब के कई उपयोग उपयोगी होने के लिए देर से बाध्यकारी पर भरोसा करते हैं, लेकिन वे मूल रूप से भाषा के विभिन्न पहलुओं और इसके कार्यान्वयन हैं।
सुनिश्चित नहीं हैं कि प्रदर्शन वास्तव में जब एक भाषा के इस तरह के विभिन्न सुविधाओं की तुलना ध्यान में रखना सबसे अच्छा आयाम है, इसलिए वे विभिन्न समस्याओं को हल करने के उद्देश्य ... –