मैं एक कक्षा में एक विधि परिभाषित किया है:जावा प्रतिबिंब: मेरे संग्रह में क्या शामिल है?
public void setCollection(Collection<MyClass>);
और एक अन्य वर्ग
public void setCollection(Collection<OtherClass>);
में (और वास्तव में, इसी तरह के वर्गों के बहुत सारे)
सभी एक ही साथ कक्षाओं में हैं superclass, और मेरे पास एक समर्थन-वर्ग में एक विधि है जहां मैं इस विधि को कॉल करना चाहता हूं और इसे सही वर्ग प्रकार के आइटमों के साथ सेट करना चाहता हूं। अब, मुझे लगता है कि मैं
Method setter = ...;
Class<?> paramClass = setter.getParameterTypes()[0]; // Is Collection in this case
if(paramClass.equals(Collection.class)) {
HashSet col = new HashSet();
// fill the set with something
setter.invoke(this, col);
}
करके एक संग्रह सेट कर रहा हूं प्राप्त कर सकते हैं लेकिन यह कैसे मैं यह पता लगाने की क्या वर्ग इस संग्रह में वस्तुओं से संबंधित होना चाहिए करते हैं?
चीयर्स
Nik
धन्यवाद एक गुच्छा, इसने मेरी समस्या हल की! यहां जोड़ा गया जटिलता समग्र रूप से मेरी जटिलता को कम कर देगी, इसलिए मैं आपके लिए अपनी टोपी लेता हूं और ईमानदारी से धन्यवाद देता हूं। :-) – niklassaers