Java集合应用中的一个小问题
来源:互联网 发布:比特精灵mac版 编辑:程序博客网 时间:2024/05/18 00:08
JavaSE5.0中增加了一组“被检验”的视图,用来对泛型类型发生问题时提供调试支持。在实际的编程实践中,将错误类型的元素私自带到泛型集合中的问题极有可能发生。例如:
ArrayList<String> strs = new ArrayList<String>();
ArrayList date = strs;
date.add(new Date());
String s = (String) date.get(0);
程序在运行的过程中将在第四行报错:
Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String
所以在实际的项目开发中我们可以采用下面这种方式来杜绝此类事件的发生:
ArrayList<String> strs = new ArrayList<String>();
List<String> safeStrings = Collections.checkedList(strs, String.class);
List<String> rawType = safeStrings;
rawType.add(new Date());
这样,编译器在第四行将对程序提示错误:The method add(String) in the type List<String> is not applicable for the arguments (Date)。
这样我们就能轻而易举地发现错误所在了。
其中Collections的checkedList()方法就是把一个List视图声明为被检验视图,编译器就能在程序视图对其进行add操作时检查参数的类型。
当然,归根结底,我们写程序时最好还是要使用安全的方式,在声明集合的视图时指明集合的类型,如下:
ArrayList<String> strs = new ArrayList<String>();
ArrayList<String> date = strs;
date.add(new Date());
String s = (String) date.get(0);
这样的话编译器在第三行会提示错误,bug也就不会留到程序运行到get时才出现了。
- Java集合应用中的一个小问题
- Java中的一个小问题
- RSS应用中的一个小问题
- java中的反射以及一个小问题
- java应用中的集合
- ArrayList应用中的一个小问题以及解决方法
- ext应用中的一个小的中文问题
- Java小问题集合1
- Java小问题集合2
- 一个JAVA小问题
- cvs应用中的小问题
- 【耻辱】java空指针异常中的一个小问题
- java中的小问题
- java中的小问题
- Java中的小问题
- java 集合 应用的小例子
- JQTreeTable中的一个小问题
- VC2005中的一个小问题
- SQL Server 查询分析器提供的所有键盘快捷方式(转)
- 哈希表、堆、栈、队列
- 企业应用网站性能优化实例分析
- 连接文件ln的使用方法
- JAVA正则表达式语法(转)
- Java集合应用中的一个小问题
- 提升SQL Server程序员工作效率的几个技巧
- C++内存管理和堆栈(ZT)
- 1.1 ECMS(帝国CMS)前台投稿流程
- struts2+zkoss框架中,zk表格排序的实现
- Qt中的:error: collect2: ld returned 1 exit status 错误问题
- 从网上转的,看着老三俗。但是挺逗的,没别的意思
- VS2008C#调用MATLAB进行混合编程
- 二次开发目录