博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ReflectUtil
阅读量:6771 次
发布时间:2019-06-26

本文共 820 字,大约阅读时间需要 2 分钟。

hot3.png

/**

 * 反射工具类

 * Q470

 *

 */

public class ReflectUtil {

/** 

     * 获得超类的参数类型,取第一个参数类型 

     * <T> 类型参数 

     * clazz 超类类型 

     */  

    @SuppressWarnings({ "rawtypes", "unchecked" })  

    public static <T> Class<T> getClassGenricType(final Class clazz) {  

        return getClassGenricType(clazz, 0);  

    }  

    /** 

     * 根据索引获得超类的参数类型 

     * clazz 超类类型 

     * @param index 索引 

     */  

    @SuppressWarnings("rawtypes")  

    public static Class getClassGenricType(final Class clazz, final int index) {  

        Type genType = clazz.getGenericSuperclass();  

        if (!(genType instanceof ParameterizedType)) {  

            return Object.class;  

        }  

        Type[] params = ((ParameterizedType)genType).getActualTypeArguments();  

        if (index >= params.length || index < 0) {  

            return Object.class;  

        }  

        if (!(params[index] instanceof Class)) {  

            return Object.class;  

        }  

        return (Class) params[index];  

    }  

}

转载于:https://my.oschina.net/victorHomePage/blog/393621

你可能感兴趣的文章
去除inline-block元素间间距的N种方法
查看>>
初到贵网,留下第一个脚印
查看>>
oracle分割字符串后以单列多行展示
查看>>
macOS上flutter开发环境搭建填坑过程(续)
查看>>
struts2_自我总结
查看>>
【MongoDB for Java】Java操作MongoDB
查看>>
12 个有效的提高编程技能的方法
查看>>
mongodb windows历史版本下载
查看>>
Filebeat 配置文件中文对照
查看>>
tableViewCell cell 图片网络下载的 基本处理原理
查看>>
ThinkPHP3.2.2-核心包Think\Log类问题、重构与建议(附修改代码)
查看>>
[译]幕后的gulp:构建一个基于流的任务自动化工具
查看>>
java ClassLoader小解
查看>>
2012-11-14 C#接口学习
查看>>
感慨一下
查看>>
R语言建立信用评分模型
查看>>
ActiveMQ、RabbitMQ、ZeroMQ比较
查看>>
Eclipse插件links安装:
查看>>
JBoss 系列四:JBoss7/WildFly中EJB调运示例
查看>>
移动开发中使用Onsen UI的笔记
查看>>