我正在研究一个助手类来传递类实例和对象(对象通常是JSON体),并且在使用泛型类时不能完全获得铸造工作。如果它确实返回class,它会提示我的bean不能被强制转换为Java.lang.Class,或者下面的问题,我得到一个强制转换异常。正确的做法是什么?
public static Class castClass(Object o, Class c) {
try {
c = (Class) o;
return c;
} catch (Exception e) {
e.getMessage();
}
return null;
}
您试图将对象强制转换为Class
,但我打赌您打算将对象强制转换为c
代表的类型。
如果是,你应该使用Class.cast
。例如:
Class<String> c = String.class;
String s = c.cast(o);
如果你想返回null
,以防它是错误的类(就像你在你的助手方法中做的那样),你会这样做:
public static <T> T castClass(Object o, Class<T> c) {
try {
return c.cast(o);
} catch (ClassCastException e) {
e.getMessage();
}
return null;
}