一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类型。如果编写可以应用于多种类型的代码,将受限于java的强类型束缚。有一种不安全的写法,是使用Object。javaSE5中有了泛型,解决了这个问题。
泛型的应用场景之一,就是容器类,用于持有其他任意类实例。比如,java集合框架中的List,Set,Map。
package tik4.generic;
import java.util.ArrayList;
import java.util.List;
public class Holder<T> {
private T t;
public Holder(T t) {
this.t = t;
}
public T get() {
return t;
}
public void set(T t) {
this.t = t;
}
public static void main(String[] args) {
List<String> strList0 = new ArrayList<String>();
strList0.add("firStr");
Holder<List<String>> holder = new Holder<List<String>>(strList0);
List<String> strList1 = new ArrayList<String>();
strList0.add("secStr");
// OK
holder.set(strList1);
List<Integer> intList = new ArrayList<Integer>();
// 不能编译
// holder.set(intList);
}
}