集合泛型的本质
来源:互联网 发布:游戏试玩网站源码 编辑:程序博客网 时间:2024/06/07 02:45
通过反射机制来认识:
- java中集合的泛型是防止错误输入的,只在编译阶段有效,绕过编译就无效了
- 验证:通过方法的反射来操作,绕过编译
结论:
编译之后集合的泛型是去泛型化的(类型擦除)
代码:
public static void main(String[] args){ ArrayList list = new ArrayList(); ArrayList<String> list1 = new ArrayList<String>(); Class c1 = list.getClass(); Class c2 = list1.getClass(); list1.add("hello"); System.out.println(c1==c2); //反射的操作都是编译之后的操作 //c1==c2为true,说明编译之后集合的泛型是去泛型化的(类型擦除) //验证过程 try { Method m = c2.getMethod("add",Object.class); m.invoke(list1,100); //绕过编译就绕过了泛型 System.out.println(list1.size());// for(String string:list1){// System.out.println(string);// }//现在不能这样遍历,会有类型转换异常 } catch (Exception e) { e.printStackTrace(); } }
阅读全文
0 0
- 集合泛型的本质
- 反射了解集合泛型的本质
- 反射:集合泛型的本质
- java集合泛型的本质
- Java反射--通过反射了解集合泛型的本质
- Java反射机制之集合泛型的本质
- 通过反射了解集合泛型的本质
- 通过反射了解集合泛型的本质
- 通过反射看集合泛型的本质-5
- 通过反射了解集合泛型的本质
- 通过反射了解集合泛型本质
- Java--Reflect(反射)专题6——通过反射了解集合泛型的本质
- 【慕课网笔记】Java 反射机制 6 通过反射了解集合泛型的本质
- java反射之通过反射了解集合泛型的本质
- Java反射(六)----- 通过反射了解集合泛型的本质
- JAVA反射之通过反射了解集合泛型的本质
- 24、Java入门—反射之通过反射了解集合泛型的本质
- 6-1 Java通过反射了解集合泛型的本质
- 第三周-项目2
- v1.08
- 简单的properties 的小工具
- iOS
- 职责链模式(Chain of Responsibility Pattern)
- 集合泛型的本质
- Java技术栈(2)排序算法(冒泡,快速排序)
- mysql 数据字典(方便查看数据库表的字段与注释)
- C#连接操作 MySQL 数据库实例(使用官方驱动)
- jQ+jQ UI制作的一个简单的二级可多选穿梭框
- caffe画loss accuracy曲线
- 第五章 编码/加密
- 数组转换list,map,set
- Linux笔记之shell脚本3:测试语句