代码如下:
- //任务6:利用反射获取方法的泛型参数、泛型异常、泛型返回值
- public <T> void applyList(List<T> list) throws Exception{
- /**
- * 思路:
- * 1.获取方法
- * 2.获取方法的泛型参数
- */
- Method method = GenericTest.class.getMethod("applyList", List.class);
- //知识点:参数化的类型,ParameterizedType
- /*
- * 下面是错误的
- * ParameterizedType[] pt= (ParameterizedType[]) method.getGenericParameterTypes();
- */
- Type[] types=method.getGenericParameterTypes();
- //获取types中的元素,转成ParameterizedType这种类型
- ParameterizedType pt=(ParameterizedType) types[0];
- System.out.println(pt.getRawType()+";"+pt.getActualTypeArguments()[0]);
- }
- public void testApplyList() throws Exception{
- applyList(new ArrayList<Integer>());
- }
复制代码
打印结果为:interface java.util.List;T
而我想要的结果是:java.util.ArrayList;Integer
怎样才能实现我想要的结果呢?求大神解答。
|