我正在使用一个辅助类将类实例和对象传递给(对象通常是一个JSON主体),并且在使用泛型类时无法完成转换。如果它确实返回了类,那么我认为我的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;
}
答案 0 :(得分:1)
您尝试将对象投射到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;
}