public class Demo01 {
public static void main(String[] args) {
// 第一段:泛型出現之前的集合定義方式
List a1 = new ArrayList();
a1.add(new Object());
a1.add(new Integer(111));
a1.add(new String("hello a1"));
// 第二段:把a1引用賦值給a2,注意a2與a1的區別是增加了泛型限制<Object>
List<Object> a2 = a1;
a2.add(new Object());
a2.add(new Integer(222));
a2.add(new String("hello a2"));
// 第三段:把a1引用賦值給a3,注意a3與a1的區別是增加了泛型<Integer>
List<Integer> a3 = a1;
a3.add(new Integer(333));
// 以下兩行編譯報錯,不允許增加非Integer類型進入集合
// a3.add(new Object());
// a3.add(new String("hello a3"))
// 第四段:把a1引用賦值給a4、a1與a4的區別是增加了通配符
List<?> a4 = a1;
// 以下編譯報錯,不允許增加任何元素
// a4.add(new Object());
// a4.add("111");
// a4.add(111)
System.out.println("=======" + a4 );
// 允許刪除和清除元素
a1.remove(0);
a4.clear();
}
}