【发布时间】:2012-09-21 03:06:31
【问题描述】:
我有以下课程:
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
有趣的是,如果我从类定义中删除“扩展 JSONOBjBase”,我只会得到一个未经检查的强制转换警告(没有错误)。有没有其他方法可以写出演员是如何完成的?
【问题讨论】:
-
欢迎来到字体擦除的美妙世界!请参阅 GSON 的 TypeToken。
-
干杯@SLaks。我根据您的建议用答案更新了我的问题。
-
我认为该解决方案行不通;我认为
TypeToken必须使用具体类型而不是类型变量创建,并且您确实必须传递类型标记。 -
@LouisWasserman 我还没有运行它,但它编译...:/
-
@MikeS:路易斯是对的。我有理由确定那是行不通的。