首页 > 代码库 > 泛型引起的陷阱

泛型引起的陷阱

 1 package stu; 2  3 import java.util.ArrayList; 4 import java.util.List; 5  6 public class TestList { 7     public static void main(String[] args) { 8         List list = new ArrayList(); 9 10         list.add("1");11 12         list.add(2); // 类型不一致13 14         list.add("3q");15 16         for (int i = 0; i < list.size(); i++) {17 18             System.out.println(list.get(i));19 20         }21 22         // 第一个循环输出无任何问题,第二个循环报出转型异常。换几话说,集合本身可以存储23 24         // 不同类型元素的对象的,只不过自从 JDK1.5之后出现了泛型,才使我们很多人觉得集合 变量仅仅能存一种类型的对象元素。25 26         // 泛型是为了在编译时更好的排除类型转换带来的繁琐检查。而在大多数应用中确实集合中就是同类型的元素。27 28         // 而泛型配合上加强的新循环, 它会强制进行单一类型的转型操作。29 30         List<String> listNew = list;31 32         for (String strNew : listNew) {33 34             System.out.println(strNew);35 36         }37     }38 }

结果: