论坛首页 Java企业应用论坛

Java获得泛型类型

浏览 55686 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-10-22  
如果是方法 可以用 getGenericParameterTypes 得到带泛型的类型
0 请登录后投票
   发表时间:2010-10-26  
以前用的获取泛型的一个方法,可恶意处理多级泛型和泛型数组。

/**
     * 取得范性信息
     *
     * @param cls
     * @param i
     * @return
     */
    private Class<?> getGenericClass(Class<?> cls, int i) {
        ParameterizedType parameterizedType = ((ParameterizedType) cls.getGenericInterfaces()[0]);
        Object genericClass = parameterizedType.getActualTypeArguments()[i];
        if (genericClass instanceof ParameterizedType) { // 处理多级泛型
            return (Class<?>) ((ParameterizedType) genericClass).getRawType();
        } else if (genericClass instanceof GenericArrayType) { // 处理数组泛型
            return (Class<?>) ((GenericArrayType) genericClass).getGenericComponentType();
        } else {
            return (Class<?>) genericClass;
        }
    }
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics