java集合有一个缺点,集合被设计成能保存任何类型的对象,但这样会导致两个问题:① 集合对元素类型没有任何限制,这样可能引发一些问题,比如想创建一个只能保存String类型对象的集合,但此时却可以轻易放进一个Integer对象,而引发异常。② 把对象放进集合时,集合丢失了对象的状态信息,只知道它自己盛装的是Object,因此取出集合元素后还需要进行强制类型转换。不仅增加了编程复杂性,还可能引发ClassCastException异常。
java5以后,java允许程序在创建集合时指定集合元素的类型。java的参数化类型被称为泛型。
import java.util.*;
class ListError
{
public static void main(String[] args)
{
ArrayList<String> l1 = new ArrayList<String>();
l1.add("031");
l1.add("032");
l1.add("033");
l1.add("034");
Iterator<String> i1 = l1.iterator();
while(i1.hasNext())
{
String s = i1.next();
System.out.println(s+" "+s.length());
}
}
}
|
|