java反射操作泛型-创新互联

public class emm {

public void test01(Mapmap,Listlist)
{
    System.out.println("test01");
}

public Map test02()
{
    System.out.println("test02");
    return null;
}

public static void main(String[] args) {

    try {
        Method m=emm.class.getMethod("test01", Map.class,List.class); //反射方法

        Type[] t=m.getGenericParameterTypes(); //获得带泛型的参数类型,返回的是type类型的数组

        for(Type paramType:t)
        {
            System.out.println("#"+paramType);
            if(paramType instanceof ParameterizedType) {  //判断是不是一个规范化参数类型
                //如果是强制转为规范化带泛型的参数类型,因为可能有多个泛型类型,所以用数组
                Type[] genericTypes=((ParameterizedType) paramType).getActualTypeArguments();//获得真正的泛型的类型,String、User
                for(Type genericType:genericTypes)
                {
                    System.out.println("泛型类型"+genericType);
                }
            }
        }

        Method m2=emm.class.getMethod("test02", null);

        Type returnType=m2.getGenericReturnType(); //获得带泛型的返回类型

        if(returnType instanceof ParameterizedType) //判断是不是规范化的带泛型的返回类型
        {
            //强制转换成规范化的带泛型的参数类型
            Type[] genericTypes=((ParameterizedType)returnType).getActualTypeArguments();
            for(Type genericType:genericTypes)
            {
                System.out.println("返回值泛型类型"+genericType);
            }
        }

    }catch(Exception e)
    {
        e.printStackTrace();
    }

}

}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好网站设计制作、成都做网站服务,我们努力开拓更好的视野,通过不懈的努力,创新互联赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,小程序定制开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
文章标题:java反射操作泛型-创新互联
文章源于:http://myzitong.com/article/gscdc.html