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

  • 相关阅读:
    云端开发,云端部署
    Chrome下的Page Speed使用
    Linux的到来
    NoSQL 之 Morphia 操作 MongoDB
    qTip2
    在.NET下使用Task Parallel Library提高程序性能
    WCF REST系列文章汇总
    Google工具pagespeed使用教程
    从零开始系统深入学习android
    如何优化一个网站使之提高访问速度
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/12592443.html
Copyright © 2020-2023  润新知