黑马程序员技术交流社区
标题:
让偶一学就害怕的泛型学习心得
[打印本页]
作者:
卞潇洋
时间:
2012-11-22 13:10
标题:
让偶一学就害怕的泛型学习心得
学泛型感觉很难,也还有不懂的,在这说一下泛型的学习心得吧
在java5之前,非泛型的集合可以容纳任何类型对象,是的,这对强类型化语言来说,对程序员来说很不爽,所以引入泛型。
泛型通过增强集合的类型来处理放入和取出的两端,
List<String> myList = new Array<String>();
myList.add("Fred");
myList.add(new Dog());
复制代码
输入得到保证,自然输出也能得到保证-------String s = myList.get(0);
但如果是混用泛型与非泛型方法的话,添加一个外部数据也不会造成错误。
import java.util.*;
public class TestBadLegacy{
public static void main(String[] args){
List<Integer> myList = new ArrayList<Integer>();
myList.add(4);
myList.add(6);
Inserter in = new Inserter();
in.insert(myList);
}
}
class Inserter{
void insert(List list){
list.add(new String(42));
}
}
复制代码
但编译器会发出警告。可以将泛型理解成编译时保护。而这与数组的区别一显无余,如果将上述代码换成数组,就会报错,可以理解为数组同时提供编译时保护和运行时保护。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2