泛型
1)为什么要用泛型?
在泛型没有诞生之前,我们经常会遇到这样的问题,如以下代码所示:
ArrayList arrayList = new ArrayList();
arrayList.add("Java");
arrayList.add(24);
for (int i = 0; i < arrayList.size(); i++) {String str = (String) arrayList.get(i);System.out.println(str);
}
看起来好像没有什么大问题,也能正常编译,但真正运行起来就会报错:
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at xxx(xxx.java:12)
类型转换出错,当我们给 ArrayList 放入不同类型的数据,却使用一种类型进行接收的时候,就会出现很多类似的错误,可能更多的时候,是因为开发人员的不小心导致的。那有没有好的办法可以杜绝此类问题的发生呢?这个时候 Java 语言提供了一个很好的解决方案——“泛型”。
2)泛型介绍
泛型:泛型本质上是类型参数化,解决了不确定对象的类型问题。
泛型的使用,请参考以下代码:
ArrayList<String> arrayList = new ArrayList();
array