我在字符串变量 model 中有类名,所以我想将一个对象转换为该加载类反射的类型
类名称我加载的是“通知”它是用字符串变量 模型
编写的String model = "Notification";
Class<?> cls = Class.forName("biznea.zredzic.pojo."+model);
所以我有抽象类PojoAbstract
,它扩展了所有pojo类,因为它是cls
或者实际上是Notification.class
public class Notification extends PojoAbstract{...}
现在我想把它转换为cls
真实班级类型(通知)
WHAT_TO_PUT_HERE po = (WHAT_TO_PUT_HERE) gson.fromJson(json.toString(), cls);
我不希望po
成为PojoAbstract
类型,我希望它是Notification
类型
我希望我很清楚:S
答案 0 :(得分:3)
您应该使用Class<T>
的方法public T cast(Object obj)
。
Object o = cls.cast(gson.fromJSon(json.toString(), cls));
但是你不能直接分配给静态声明,因为在编译时你不会知道类型。你必须尽可能多地保持声明的非特定性,因为你不能在编译时假设任何东西。