如何通过反射的到一个泛型Class

Class<ArrayList<String>>非泛型我们都可以通过class.forName("xxxx.xxxx")来得到Class 但是泛型该怎么办呢?

解决方案 »

  1.   

    其实楼主先弄清楚JVM只支持两种类的加载方式就能很好解决这个问题:
    1).在编译时确定类的类型
    2).在运行时确定类的类型
    很显然,通过new的方式是在编译时就确定了类的类型,而为了程序的扩展性,所以提供了在运行时加载类的方式。比如反射机制。反射的原理是在运行时确定类的类型,而泛型类需要在编译期确定类的类型。
    这也就是为什么反射不能支持泛型类的原因所在!!
      

  2.   


    public void getUserName(Map<String,User> userMap){}上面Map<String,User>中的String,User都可以在反射中得到阿!看过黎或明视频没有阿
      

  3.   

    [b][b]泛型是在编译的时候供编译器使用的,产生的class文件中<>泛型信息已经被擦出了,所以通过反射是得不到有关泛型的任何信息的。
      

  4.   

    楼主要知道ArrayList<String>跟ArrayList<Integer>并不是两个类,其实就是ArrayList类。
    当然ArrayList的对象也可以像原来一样使用反射。