zoukankan      html  css  js  c++  java
  • Java之反射机制六:获取方法的泛型信息

    一.测试类

    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);
                }
            }
        }

  • 相关阅读:
    11.10 日志
    1120day户别确认
    10.28代码
    hdu 1695 GCD (莫比乌斯反演)
    8月19日
    多态在子父类中的成员上的体现的特点
    JAVA学习日报 10/29
    JAVA学习日报 10/26
    JAVA学习日报 11/2
    JAVA学习日报 10/30
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/12592443.html
Copyright © 2011-2022 走看看