Java反射机制之集合泛型的本质
2015-08-09 18:15
555 查看
package com.imooc.reflect; import java.lang.reflect.Method; import java.util.ArrayList; public class MethodDemo4 { public static void main(String[] args) { ArrayList list = new ArrayList(); ArrayList<String> list1 = new ArrayList<String>(); list1.add("hello"); //list1.add(20);错误的 Class c1 = list.getClass(); Class c2 = list1.getClass(); System.out.println(c1 == c2); //反射的操作都是编译之后的操作 /* * c1==c2结果返回true说明编译之后集合的泛型是去泛型化的 * Java中集合的泛型,是防止错误输入的,只在编译阶段有效, * 绕过编译就无效了 * 验证:我们可以通过方法的反射来操作,绕过编译 */ try { Method m = c2.getMethod("add", Object.class); m.invoke(list1, 20);//绕过编译操作就绕过了泛型 System.out.println(list1.size()); System.out.println(list1); /*for (String string : list1) { System.out.println(string); }*///现在不能这样遍历 } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 设计模式之spring分析
- Java容器框架总结(一)
- gradle生成java Project并导入Eclipse中
- [Java Concurrency in Practice]第二章 线程安全性
- Java CAS 和ABA问题
- Java记录 -5- 运算符续 Operator
- Eclipse背景设置
- Java学习笔记-------父进程监听,子进程接受连接的完整实例
- java 批量操作数据库
- java学习练习题及答案
- Java基础之修饰符与关键字
- Java获取外网ip地址
- Java学习笔记------非常巧妙-------for循环来实现 父进程监听,子进程接受连接
- Java中的checked exception和unchecked exception
- spring总结
- springmvc学习第一天
- Java内部类的使用小结
- 使用javamail发送邮件
- 智渔课堂官方免费教程二:Java简介和开发环境配置
- I学霸官方免费教程二:Java简介和开发环境配置