मैं Object
तर्क के रूप में एक विधि को कार्यान्वित करना चाहता हूं, इसे मनमाने ढंग से टाइप करता है, और यदि यह null
रिटर्न में विफल रहता है। यहाँ मैं अब तक है:जावा जेनरिक
public static void main(String[] args) {
MyClass a, b;
a = Main.<MyClass>staticCast(new String("B"));
}
public static class MyClass {
}
public static <T> T staticCast(Object arg) {
try {
if (arg == null) return null;
T result = (T) arg;
return result;
} catch (Throwable e) {
return null;
}
}
दुर्भाग्य वर्ग डाली अपवाद कभी नहीं फेंक दिया जाता है/staticCast()
समारोह के मुख्य भाग में पकड़ लिया। ऐसा लगता है कि जावा कंपाइलर फ़ंक्शन String staticCast(Object arg)
उत्पन्न करता है जिसमें आपके पास String result = (String) arg;
लाइन है, भले ही मैं स्पष्ट रूप से कहूं कि टेम्पलेट प्रकार MyClass
होना चाहिए। कोई मदद? धन्यवाद।
वैसे, आपको पकड़ना चाहिए जी केवल क्लासकास्ट अपवाद, फेंकने योग्य नहीं। पकड़ने योग्य गंभीर समस्याएं पैदा कर सकती हैं। –