码迷,mamicode.com
首页 > 其他好文 > 详细

ReflectUtil

时间:2015-03-30 16:39:59      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

/**

 * 反射工具类

 * @author Q470

 *

 */

public class ReflectUtil {

/** 

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

     * @param <T> 类型参数 

     * @param clazz 超类类型 

     */  

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

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

        return getClassGenricType(clazz, 0);  

    }  

    /** 

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

     * @param 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];  

    }  

}


ReflectUtil

标签:

原文地址:http://my.oschina.net/victorHomePage/blog/393621

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!