类型安全问题:
虽然可以编译通过,但是运行起来却是失败的!加入了数值对象,自动封包为(autobox)Interger的int,于是执行时候会给出严重的java.lang.ClassCastException:错误。
教训:Iterator 与collection一定要一起参数化。这样即使出现如下错误,也会编译时候提示出错的!
public void testTypeSafeIterators(PrintStream out)
{
List list = getList();
for(Iterator<String> i = list.iterator(); i.hasNext();) //Iterator是类型安全的
{
String s = i.next();
out.println(s);
}
}
private List getList() {
List list = new LinkedList(); //collection不是类型安全的
list.add(3);
list.add("Blind");
list.add("mice");
return list;
}