频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
java反射getGenericSuperclass的操作讲解
2018-03-13 11:09:33      个评论    来源:tiangaopan的博客  
收藏   我要投稿

java反射getGenericSuperclass的操作讲解

public class Women extends Person {
    private static final String TAG = "Women";

    public void execute() {
        Type type = this.getClass().getGenericSuperclass();
        Log.e(TAG, "type.." + type);
        Type[] types = ((ParameterizedType) type).getActualTypeArguments();
        Log.e(TAG, "size.." + types.length);
        for (int i = 0; i < types.length; i++) {
            Log.e(TAG, types[i].toString());
        }
    }

}

women为person的子类,当我们调用执行时

Type type = this.getClass().getGenericSuperclass();

(1)看到其中的superclass(),可以看出得到的type是其父类的类型,与getsuperclass的区别是可以获得带有泛型的父类,而getsuperclass只能获取父类,没有泛型

Women: type..com.example.administrator.Bean.Person

其中的泛型为women

(2)ParameterizedType是Type的子接口。用于获取java泛型参数类型

实质上types长度就是当前泛型类型的个数,目前也就是1

Women: size..1

(3)通过types[0]取出的就是当前的泛型类。可将其转化为class类

Women: class com.example.administrator.Bean.Women

点击复制链接 与好友分享!回本站首页
上一篇:JAVA NIO通道Channel与直接与非直接缓冲区详解
下一篇:java ArrayList源码分析实例讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站