zoukankan      html  css  js  c++  java
  • 利用反射获取泛型

    package com.duchong.aar.reflect.T;
    
    import java.lang.reflect.Method;
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.List;
    import java.util.Map;
    
    public class DemoT {
    
        public void test01(Map<String,Integer> map, List<String> list){
            System.out.println("DemoT.test01()");
        }
    
        public Map<Integer,String> test02(){
            System.out.println("DemoT.test02()");
            return null;
        }
    
        public static void main(String[] args) {
    
            try {
    
                //获得指定方法参数泛型信息
                Method m = DemoT.class.getMethod("test01", Map.class,List.class);
                Type[] t = m.getGenericParameterTypes();
                for (Type paramType : t) {
                    System.out.println("#"+paramType);
                    if(paramType instanceof ParameterizedType){
                        Type[] genericTypes = ((ParameterizedType) paramType).getActualTypeArguments();
                        for (Type genericType : genericTypes) {
                            System.out.println("泛型类型:"+genericType);
                        }
                    }
                }
    
                //获得指定方法返回值泛型信息
                Method m2 = DemoT.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();
            }
    
    
    
        }
    }
  • 相关阅读:
    最优贸易 NOIP 2009 提高组 第三题
    Think twice, code once.
    luogu P1378 油滴扩展
    codevs 1002 搭桥
    codevs 1014 装箱问题 2001年NOIP全国联赛普及组
    洛谷P2782 友好城市
    洛谷P1113 杂务
    [HDU1848]Fibonacci again and again
    [POJ2420]A Star not a Tree?
    [SCOI2010]生成字符串
  • 原文地址:https://www.cnblogs.com/geekdc/p/10976764.html
Copyright © 2011-2022 走看看