यह एक काफी व्यक्तिपरक प्रश्न हो सकता है, लेकिन शायद नहीं। मेरे एप्लिकेशन में फॉर्मों का एक गुच्छा शामिल है जो उपयोगकर्ता को अलग-अलग समय पर प्रदर्शित होते हैं। प्रत्येक रूप अपने आप का एक वर्ग है। आम तौर पर उपयोगकर्ता एक बटन पर क्लिक करता है, जिसने एक नया फॉर्म लॉन्च किया है।जावा प्रतिबिंब उपयुक्तता
मुझे लगता है कि इन बटनों बनाता है एक सुविधा समारोह है, तो आप इस तरह इसे कहते:
buildButton("button text", new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
showForm(new TasksForm(args...));
}
});
मैं कई बार इस दर्जनों करते हैं, और यह एक SelectionAdapter हर बार बनाने के लिए होने वास्तव में बोझिल है।
buildButton("button text", TasksForm.class, args...);
कहाँ आर्ग:
सच सब मैं बटन को पता है के लिए की जरूरत है क्या वर्ग है कि क्लिक रहा है और क्या तर्क निर्माता देने के लिए दृष्टांत के लिए, तो मैं एक समारोह है कि मैं इस के बजाय की तरह फोन बनाया है ऑब्जेक्ट्स की मनमानी सूची है जिसे आप सामान्य रूप से कार्यप्रणाली को तुरंत चालू करने के लिए उपयोग कर सकते हैं।
यह कक्षा से एक कन्स्ट्रक्टर प्राप्त करने के लिए प्रतिबिंब का उपयोग करता है, तर्क सूची से मेल खाता है, और इसकी आवश्यकता होने पर एक उदाहरण बनाते हैं। अधिकांश समय मुझे कन्स्ट्रक्टर को किसी भी तर्क को पारित करने की आवश्यकता नहीं होती है। नकारात्मकता स्पष्ट रूप से है कि यदि मैं तर्कों का एक बुरा सेट पास कर रहा हूं, तो यह संकलन समय पर इसका पता नहीं लगा सकता है, इसलिए यदि यह विफल हो जाता है, तो रनटाइम पर एक संवाद प्रदर्शित होता है। लेकिन यह सामान्य रूप से असफल नहीं होगा, और अगर ऐसा होता है तो इसे डीबग करना आसान होगा।
मुझे लगता है कि यह बहुत साफ है क्योंकि मैं उन भाषाओं से आती हूं जहां फ़ंक्शन और कक्षा अक्षर का उपयोग बहुत आम है। लेकिन यदि आप एक सामान्य जावा प्रोग्रामर हैं, तो क्या आप इसे फिक्र कर देंगे, या आप ज़िलियन चयन एडाप्टर स्कैन करने की सराहना करेंगे?
मैं प्रतिबिंब के साथ जाऊंगा। –