ParameterizedType parameterizedType=(ParameterizedType) this.getClass().getGenericSuperclass(); Cl
2014-12-01 20:02
330 查看
getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type 然后将其转换ParameterizedType。。 getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。 [0]就是这个数组中第一个了。。 简而言之就是获得超类的泛型参数的实际类型。。 比如 超类 public class GenericDAO<T> { private Class<T> entityClass; protected GenericDAO() { Type type = getClass().getGenericSuperclass(); Type trueType = ((ParameterizedType) type).getActualTypeArguments()[0]; this.entityClass = (Class<T>) trueType; } } 子类 public class OptionManager extends GenericDAO<MSGC_OPTION> { } 测试类 public class OracleTest { public static void main(String[] args) throws Exception { OptionManager manager = new OptionManager(); } } 这样在你new OptionManager();以后 超类里的entityClass就是子类那里的public class OptionManager extends GenericDAO<MSGC_OPTION> 里面的MSGC_OPTION所对应的class对象了..
相关文章推荐
- 基类 ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
- ParameterizedType getGenericSuperclass 获取泛型参数;class getClass区别
- getSimpleName(),getClass(),getGenericSuperclass()和getActualTypeArguments()的返回结果
- ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]
- 使用((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]的实例
- Java中BaseDao方法以(ParameterizedType) getClass().getGenericSuperclass().getActualTypeArguments()[0]处理方式
- ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]
- ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]
- ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]
- (ParameterizedType) getClass().getGenericSuperclass().getActualTypeArguments()[0]得到的是什么?
- ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]
- java反射、getClass()、getSuperclass()、getGenericSuperclass()
- Class的 getSuperclass与getGenericSuperclass区别和如何获取泛型参数类型
- left of '->GetStatus' must point to class/struct/union/generic type
- eclipse中如何去除警告:Class is a raw type. References to generic type Class<T> should be parameterized
- 通过父类的泛型获取子类的类型Class.getGenericSuperclass
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型
- eclipse中如何去除警告:Class is a raw type. References to generic type Class<T> should be parameterized
- 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型