通常的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类型。若是编写能够应用于多种类型的代码,将受限于java的强类型束缚。有一种不安全的写法,是使用Object。javaSE5中有了泛型,解决了这个问题。java
泛型的应用场景之一,就是容器类,用于持有其余任意类实例。好比,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);
- }
- }