Java泛型中的通配符的使用
package com.srie.testjava; import java.util.ArrayList; import java.util.List; public class TestClassDefine2<T, S extends T> { public static void main(String[] args) { List<String> slist = new ArrayList<String>(); List<Integer> iList = new ArrayList<Integer>(); iList.add(1); iList.add(2); slist.add("a"); slist.add("b"); List<?> a = slist; System.out.println(a);// [a, b] // a.add("c");//无法往不确定类型中添加具体元素;只能从不确定类型中读取; a.add(null);// 可以添加null; slist.add("c"); System.out.println(a);// [a, b, c] a = iList; System.out.println(a);// [1, 2] // 反编译之后的结果: // List slist = new ArrayList(); // List iList = new ArrayList(); // iList.add(Integer.valueOf(1)); // iList.add(Integer.valueOf(2)); // slist.add("a"); // slist.add("b"); // List a = slist; // System.out.println(a); // // a.add(null); // slist.add("c"); // System.out.println(a); // a = iList; // System.out.println(a); } }