का उपयोग करके पैरामीटरयुक्त प्रकार ऑब्जेक्ट बनाना यह एक बेवकूफ सवाल हो सकता है, लेकिन मैंने अभी एक प्रश्न देखा है how to create a Type variable for a generic type। सर्वसम्मति यह प्रतीत होती है कि आपके पास उस प्रकार की लौटने वाली डमी विधि होनी चाहिए, और फिर इसे प्राप्त करने के लिए प्रतिबिंब का उपयोग करें (इस मामले में वह Map<String, String>
चाहता था)। कुछ इस तरह:अज्ञात वर्ग
public Map<String, String> dummy() { throw new Error(); }
Type mapStringString = Class.forName("ThisClass").getMethod("dummy").getGenericReturnType();
मेरा प्रश्न है, इस्तेमाल किया प्रतिबिंब नहीं होने इतना, तुम बस की तरह कुछ नहीं कर सका:
Type mapStringString = new ParameterizedType() {
public Type getRawType() {
return Map.class;
}
public Type getOwnerType() {
return null;
}
public Type[] getActualTypeArguments() {
return new Type[] { String.class, String.class };
}
};
चाहेंगे इस काम करता है? यदि नहीं, तो क्यों नहीं? और खतरों में से कुछ/समस्याओं क्या हैं अगर यह (Integer<String>
जैसे कुछ प्रकार वापस जाने के लिए सक्षम किया जा रहा है जो स्पष्ट रूप से संभव नहीं है के अलावा है।
मैं आपके प्रस्तावित समाधान की अनुमति देने की कोशिश कर रहा हूं: कच्चे से पैरामीटरेटेड प्रकार प्राप्त करें संकलन समय पर आपूर्ति किए गए प्रकार पैरामीटर का प्रकार और सूची। क्या आपको ऐसा करने का दूसरा तरीका मिला? – user48956