मेरी परियोजना में प्रतिबिंब शामिल है और मैं वर्तमान में जेनेरिक प्रकारों से निपट रहा हूं। मैं एक सूची (java.util.List) से सामान्य प्रकार प्राप्त करने के लिए के साथ प्रबंधित किया है:जावा सामान्य प्रकार का संग्रह प्राप्त करता है
if(originalField.getGenericType() instanceof ParameterizedType){
ParameterizedType pt = (ParameterizedType) originalField.getGenericType();
Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0];
}
मैं भी एक Collection<String>
है और यह पता चला है कि संग्रह नहीं ParameterizedType लिए डाली जा सकती है।
किसी को पता है कि संग्रह से स्ट्रिंग (या जो कुछ भी होगा) कैसे प्राप्त करें?
मैं जावा मिरर के बारे में पढ़ रहा हूं इसलिए मुझे इसके बारे में पता है, लेकिन सूची से जेनेरिक प्राप्त करने के बाद, मैंने सोचा कि शायद कोई और 'चाल' जानता है।
धन्यवाद।
संपादित: मैं के साथ वर्ग के क्षेत्रों में से सब कुछ खत्म हो पुनरावृत्ति कर रहा हूँ:
for (Field originalField : someClass.getDeclaredFields())
और फिर जब मैं कुछ List<String>
फील्ड का सामना करना पड़ रहा हूँ, इसके बाद के संस्करण कोड मैं उपवर्ग के रूप में String
हो रही के साथ चर।
आप कुछ और कोड दिखा सकते हैं हमारे फ़ील्ड के प्रकार के लिए कच्चे वर्ग को हल करने
TypeResolver
उपयोग कर सकते हैं। यह स्पष्ट नहीं है कि यहां क्या हो रहा है। यदि विधि 'सूची' के लिए काम करती है, तो कारण है कि यह 'संग्रह' के लिए काम नहीं करेगा। –भले ही आपको सामान्य प्रकार का क्षेत्र मिलता है, आप इसके साथ इतना कुछ नहीं कर सकते हैं। आपके मामले में क्या उद्देश्य है? –
रोहित झोन - कोड सूची के लिए काम करता है लेकिन संग्रह के लिए नहीं। रनटाइम के दौरान यह कहा गया कि संग्रह पैरामीटरेट टाइप टाइप नहीं किया जा सकता है (जैसा कि मैंने प्रश्न में उल्लेख किया है)। सोटिरियस डेलिमैनोलिस - इस कोड का उद्देश्य कोड उत्पन्न करना है, इसलिए मैं जेनेरिक – Gumba