关于JAVA 泛型 反射的问题 如何通过反射的到一个泛型Class如Class<ArrayList<String>>非泛型我们都可以通过class.forName("xxxx.xxxx")来得到Class 但是泛型该怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实楼主先弄清楚JVM只支持两种类的加载方式就能很好解决这个问题:1).在编译时确定类的类型2).在运行时确定类的类型很显然,通过new的方式是在编译时就确定了类的类型,而为了程序的扩展性,所以提供了在运行时加载类的方式。比如反射机制。反射的原理是在运行时确定类的类型,而泛型类需要在编译期确定类的类型。这也就是为什么反射不能支持泛型类的原因所在!! public void getUserName(Map<String,User> userMap){}上面Map<String,User>中的String,User都可以在反射中得到阿!看过黎或明视频没有阿 [b][b]泛型是在编译的时候供编译器使用的,产生的class文件中<>泛型信息已经被擦出了,所以通过反射是得不到有关泛型的任何信息的。 楼主要知道ArrayList<String>跟ArrayList<Integer>并不是两个类,其实就是ArrayList类。当然ArrayList的对象也可以像原来一样使用反射。 java.net.SocketException: Connection reset 分高,在线等!!!! JFrame与Frame的区别引起的问题 谁帮帮我!! 深入java虚拟机中的一个基础问题 ServerSocket处于Accept()阻塞状态,如何写代码结束这种状态? String对象转化为Date和Time 急~~一个错误,在线等~~ 下面这段程序为什么会有这样的错误提示,奇怪!! 焦点事件和按钮监听 applet中如何把TextField的值赋给char类型的变量? 学习ava是否有前途啊 菜鸟求助: 如何用 tostring 打印二维数组
1).在编译时确定类的类型
2).在运行时确定类的类型
很显然,通过new的方式是在编译时就确定了类的类型,而为了程序的扩展性,所以提供了在运行时加载类的方式。比如反射机制。反射的原理是在运行时确定类的类型,而泛型类需要在编译期确定类的类型。
这也就是为什么反射不能支持泛型类的原因所在!!
public void getUserName(Map<String,User> userMap){}上面Map<String,User>中的String,User都可以在反射中得到阿!看过黎或明视频没有阿
当然ArrayList的对象也可以像原来一样使用反射。