黑马程序员技术交流社区

标题: 让偶一学就害怕的泛型学习心得 [打印本页]

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






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2