码迷,mamicode.com
首页 > 编程语言 > 详细

Java之反射机制六:获取方法的泛型信息

时间:2020-03-29 15:25:19      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:exception   return   image   参数   ceo   java之反射   for   http   类型   

一.测试类

public class Test02 {

    public void parameterTest(Map<Integer, Dog> map){

    }

    public Map<Integer,Dog> returnTest(){
        return new HashMap<Integer, Dog>();
    }
}

二.获取方法的参数中的泛型信息

    @Test  //获取方法的参数中的泛型信息
    public void test() throws NoSuchMethodException {
        Method method = Test02.class.getMethod("parameterTest", Map.class);
        //获取方法的参数类型
        Type[] genericParameterTypes = method.getGenericParameterTypes();
        for (Type genericParameterType : genericParameterTypes) {
            System.out.println("type:"+genericParameterType);
            //ParameterizedType:表示一种参数化类型,比如Collection<Object>
            if(genericParameterType instanceof ParameterizedType){
                Type[] actualTypeArguments = ((ParameterizedType) genericParameterType).getActualTypeArguments();
                for (Type parameterType : actualTypeArguments) {
                    System.out.println(parameterType);
                }
            }
        }
    }

运行结果:

技术图片

 

 三.获取方法的返回值中的泛型信息

    @Test //获取方法的返回值中的泛型信息
    public void test2() throws NoSuchMethodException {
        Method method = Test02.class.getMethod("returnTest");
        //获取方法的返回值类型
        Type genericReturnType = method.getGenericReturnType();
        if(genericReturnType instanceof ParameterizedType){
            Type[] actualTypeArguments = ((ParameterizedType) genericReturnType).getActualTypeArguments();
            for (Type parameterType : actualTypeArguments) {
                System.out.println(parameterType);
            }
        }
    }

技术图片

 

Java之反射机制六:获取方法的泛型信息

标签:exception   return   image   参数   ceo   java之反射   for   http   类型   

原文地址:https://www.cnblogs.com/wwjj4811/p/12592443.html

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