泛型
泛型:可以在类或方法中预支地使用未知的类型。
使用泛型的好处
- 将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
- 避免了类型强转的麻烦。
什么叫ClassCastException
public class GenericDemo { public static void main(String[] args) { Collection coll = new ArrayList(); coll.add("abc"); coll.add("itcast"); coll.add(5);//由于集合没有做任何限定,任何类型都可以给其中存放 Iterator it = coll.iterator(); while(it.hasNext()){ //需要打印每个字符串的长度,就要把迭代出来的对象转成String类型 String str = (String) it.next(); System.out.println(str.length()); } } }
上述代码就会出现java.lang.ClassCastException,因为Collection虽然可以存储各种对象,但实际上通常Collection只存储同一类型对象。
所以这个时候使用泛型可以有效的避免这个异常,让其在编译阶段就被发现。