2

我在字符串变量模型中有类名,所以我想将一个对象转换为加载的类 ba 反射的类型

我正在加载的类名是“通知”,它是用字符串变量模型编写的

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

4

1 回答 1

3

你应该使用的方法public T cast(Object obj)Class<T>

Object o = cls.cast(gson.fromJSon(json.toString(), cls));

但是您不能直接分配给静态声明,因为在编译时您不会知道类型。您必须尽可能保持声明的非特定性,因为您不能在编译时假设任何内容。

于 2012-09-02T15:44:08.730 回答