黑马程序员技术交流社区

标题: 反射的问题 [打印本页]

作者: 高丽华    时间: 2014-1-17 14:51
标题: 反射的问题
通过反射怎么来解决泛型中不同类型的元素!!!
希望能用代码来体现!!!
谢谢!!

作者: 长石    时间: 2014-1-17 15:09
假如我们要想获得 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. }
复制代码

作者: 随便    时间: 2014-1-17 15:22
楼上正解,只有通过方法的传入参数,才能判断参数的泛型。
作者: wodenhaowzg    时间: 2014-1-17 16:59
学习了  代码拿去试了 不错 呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2