A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高丽华 中级黑马   /  2014-1-17 14:51  /  905 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过反射怎么来解决泛型中不同类型的元素!!!
希望能用代码来体现!!!
谢谢!!

3 个回复

倒序浏览
假如我们要想获得 Vector<Date> v = new Vector<Date>(); v的实际类型参数
我们必须写一个如applyRef的方法
我们不能通过v.getClass()这样的代码得到Vector<>里的参数化,只能通过其他途径得到。
  1. public class Dao {

  2.      

  3.     public void applyRef1(Map<String,Integer> map,Vector<Date> v){

  4.          

  5.     }

  6.      
  7.     public static void main(String[] args) {

  8.         try {

  9.             Method method = new Dao().getClass().getMethod("applyRef1", Map.class,Vector.class) ;

  10.             

  11.             Type[] pType = method.getParameterTypes();

  12.             

  13.             Type[] neiType = method.getGenericParameterTypes();
  14.            

  15.             System.out.println(pType[0]) ;

  16.             System.out.println(pType[1]) ;

  17.             

  18.             System.out.println(neiType[0]) ;

  19.             System.out.println(neiType[1]) ;

  20.         } catch (Exception e) {

  21.             // TODO Auto-generated catch block

  22.             e.printStackTrace();

  23.         }

  24.     }

  25. }
复制代码
回复 使用道具 举报
楼上正解,只有通过方法的传入参数,才能判断参数的泛型。
回复 使用道具 举报
学习了  代码拿去试了 不错 呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马