【发布时间】:2015-09-15 00:14:46
【问题描述】:
假设我的项目中有以下这些类:
public class MyBaseEntity<T> {
T id;
}
public class MySubClass extends MyBaseEntity<Long> {
}
现在,我想通过 java 反射获取 id(java.lang.Long) 字段的主要类型MySubClass,我该怎么做?
更新
我为此更改了课程并添加了 2 个新的Class:
public class MySubClass3 extends MyBaseEntity<Integer> {
}
public class MySubClass2 extends MySubClass3 {
}
public class MySubClass extends MySubClass2 {
}
现在,我如何获取 id 的主要类型,换句话说,如果继承深度是动态的,我如何获取特定类的 id 的主要类型?
【问题讨论】:
-
只有当你真正为它分配
Long时,你才能做到这一点。在类型擦除之后,变量本身的类型为Object。
标签: java generics reflection code-generation freemarker