泛型引起的陷阱

 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 }

结果:

 

 

posted on 2014-07-29 18:24  @冰糖  阅读(200)  评论(0编辑  收藏  举报

导航