तो मैं एक नक्शा है:जावा जेनेरिक्स कक्षा के साथ <T>
Map<String, Class> format = new HashMap<String, Class>();
और मैं इस तरह यह करने के लिए तत्वों को जोड़ने होगा:
format.put("Vendor Number", Integer.class);
format.put("Vendor Dispatch", Date.class);
....
मैं एक सामान्य विधि है इस प्रकार है:
public static <T> T verifyType(String name, Class<T> type) {
if (type == Integer.class) {
return type.cast(new Integer(Integer.parseInt(name)));
}
......
return null;
}
अब कोड का यह टुकड़ा कोई कंपाइलर समस्याओं के साथ काम करता है:
Integer i = verifyType("100",Integer.class);
लेकिन, जब मैं कोशिश यह:
Integer i = verifyType("100",format.get("Vendor Number"));
OR
Class type = Integer.class
Integer i = verifyType("100",type);
संकलक मुझे इस चेतावनी दिखाता है: प्रकार की सुरक्षा: अनियंत्रित मंगलाचरण verifyType (स्ट्रिंग, क्लास) सामान्य विधि verifyType (स्ट्रिंग, क्लास)
कीछोड़ देता है जो मुझे हैरान ... कृपया मदद ...
यह काम करता है, हालांकि, जाहिर है, अगर मैं घोषित हैशपैप से कक्षा प्राप्त करना चाहता हूं तो यह चेतावनी को दबाएगा। धुएं और दर्पण के लिए – Jay
+1 –