通常的類和方法,只能使用具體的類型:要麼是基本類型,要麼是自定義的類型。若是編寫能夠應用於多種類型的代碼,將受限於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);
- }
- }