Java获取泛型参数的Class类型

需求:两个类:A带泛型参数T,B继承A并给出泛型参数类型,现在想在A中获取T的Class类型。

public abstract class A<T> {
    public A() {
        Type genericSuperclass = this.getClass().getGenericSuperclass();
        ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
        Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
        Class tClass = (Class) actualTypeArguments[0];

        System.out.println(tClass.getName());

// 用一句话获取就是下面一行代码,只是去除了中间变量,可读性差了些
//        Class tCls = (Class) (((ParameterizedType) (this.getClass().getGenericSuperclass())).getActualTypeArguments()[0]);
    }
}
public class B extends A<String> {
}

执行一下代码:

public static void main(String[] args){
     new B();//控制台会输出java.lang.String
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 引言:泛型一直是困扰自己的一个难题,但是泛型有时一个面试时老生常谈的问题;今天作者就通过查阅相关资料简单谈谈自己对...
    cp_insist阅读 5,835评论 0 4
  • 流火的季节 吻别了暧昧的游戏 心若寒霜 强装微笑也不达眼底 紧握怀中 那一点点温存的残余 贪欢一夜 仍留不住你 妩...
    陶墨墨阅读 1,072评论 1 0
  • 杀手应该是冷血的,可是血很热。助人的那个店家看似是热情的,可是他却很冷血。这个世界,本来就不能从看到的世界去得到结...
    U酱的胡言乱语阅读 1,193评论 0 1
  • 纳米芬多精是从桧木中提取芬多精和精油的变压蒸馏方法 技术领域本发明涉及一种桧木芬多精和桧木精油,及其变压蒸馏提取方...
    喆哲只为健康阅读 3,690评论 0 0
  • 《叶问3》开始不到十分钟,我说:张天志和叶问都打咏春拳,都会功夫,但是心境不一样。张的手法咄咄逼人,力度中藏着杀机...
    九月城池阅读 2,622评论 0 0

友情链接更多精彩内容