我有以下类(class):
public abstract class MyClass<T extends Object> {
protected T createNewFromData(Reader reader){
GSON.fromJSON(reader,T.class); // T.class isn't allowed :(
}
}
如何将 Class
除了从 T 类型的预实例化对象之外,是否有其他方法可以获取 Class
T t = new T();
Class<T> klass = t.class;
尝试#2
有趣的是,如果我从类定义中删除“extends JSONOBjBase”,我只会收到未经检查的转换警告(无错误)。有没有另一种方式来写 Actor 是如何完成的?
最佳答案
没有。
由于类型删除,此信息在运行时不存在。
相反,您可以重新使用 GSON 的 TypeToken hack ,它创建了一个匿名类,该类继承了一个封闭的泛型基类。
关于java - 我可以从泛型类型参数中获取 .class 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12523699/