我想实现一个方法,它以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()
函数的主体中从未抛出/捕获类转换异常。似乎Java编译器生成了函数String staticCast(Object arg)
,其中有一行String result = (String) arg;
,即使我明确指定模板类型应为MyClass
。有什么帮助吗?谢谢。