利用反射获取泛型
Posted geekdc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用反射获取泛型相关的知识,希望对你有一定的参考价值。
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();
以上是关于利用反射获取泛型的主要内容,如果未能解决你的问题,请参考以下文章