动态类型安全
来源:互联网 发布:淘宝网实名认证在哪里 编辑:程序博客网 时间:2024/06/05 16:16
用一个原生的引用一个具体泛型类型容器对象,往往可以添加别的对象,当从其容器取出元素强转时,才抛出其异常,不好发现问题的所在,这是你可以用Collections的一系类工具(checkedCollection(),checkedList(),checkedMap()等),来检查容器,让你在插入类型不正确对象情况下通过其运行时抛出ClassCastException异常来知道问题所在。
代码例子:
public class Pet extends Individual { public Pet(String name) { super(name); } public Pet() { super(); }} public class Dog extends Pet { public Dog(String name) { super(name); } public Dog() { super(); }}public class Cat extends Pet { public Cat(String name) { super(name); } public Cat() { super(); }}public class CheckedList { @SuppressWarnings("unchecked") static void oldStyleMethod(List probablyDogs) { probablyDogs.add(new Cat()); } public static void main(String[] args) { List<Dog> dogs1 = new ArrayList<Dog>(); //编译和运行都会通过 oldStyleMethod(dogs1); List<Dog> dogs2 = Collections.checkedList( new ArrayList<Dog>(), Dog.class); try { //会抛出异常 oldStyleMethod(dogs2); } catch(Exception e) { System.out.println(e); } //安全编译通过 List<Pet> pets = Collections.checkedList( new ArrayList<Pet>(), Pet.class); pets.add(new Dog()); pets.add(new Cat()); }}
0 0
- java动态类型安全
- 动态类型安全
- 15.3 动态类型安全
- JPA 2.0 中的动态类型安全查询
- JPA 2.0 中的动态类型安全查询
- JPA 2.0 中的动态类型安全查询
- JPA 2.0 中的动态类型安全查询
- 《Java编程思想》动态类型安全
- 类型安全
- 类型安全
- 类型安全
- 类型安全
- 线程安全,异常安全,类型安全
- 动态类型
- 动态类型
- 静态类型 动态类型
- 动态类型 静态类型
- 让TList类型安全
- ubuntu下安装Vmware
- 斯坦福cs193p作业解析之计算器2(Calculator)
- visual studio编写的exe程序不能在没装vs的电脑上运行
- 不同的实现类就代表不同的输入和输出设备
- Linux_C 编程:生成动态链接库是否必须使用 -fPIC 的问题
- 动态类型安全
- 斯坦福cs193p作业解析之图形计算器(Graph Calculator)
- Zorka监控平台Collector端的配置方法
- 斯坦福cs193p作业解析之Smashtag(Twitter)
- mysql基础语法及拓展到web中的sql注入
- UVA 10817-Headmaster’s Headache(状态压缩DP)
- 孔浩老师 jUnit 视频教程学习笔记(第2讲)
- <UNIX环境高级编程>文件共享及fork函数
- Git和Gitlab协同工作