首页 > 代码库 > Java 泛型约束

Java 泛型约束

类型约束:

import java.util.List;import java.util.ArrayList;import java.util.LinkedList;/** * Created by Administrator on 2016/12/30 0030. */public class ListGenericFoo<T extends List>{    private T[] fooArray;    public T[] getFooArray()    {        return fooArray;    }    public void setFooArray(T[] fooArray)    {        this.fooArray = fooArray;    }    public static void main(String[] args)    {        ListGenericFoo<LinkedList> foo1 = new ListGenericFoo<LinkedList>();        ListGenericFoo<ArrayList> foo2 = new ListGenericFoo<ArrayList>();        LinkedList[] linkedLists = new LinkedList[10];        foo1.setFooArray(linkedLists);        ArrayList[] arrayLists = new ArrayList[10];        foo2.setFooArray(arrayLists);    }}

继承接口或者类,都用extends关键字

限制类型

  ArrayList<? extends List> list=null;         list=new ArrayList<LinkedList>();         list=new ArrayList<ArrayList>();

ArrayList中的泛型必须继承是List(当然这里List是接口,不可能,但是类型可以)或者List的子类

    ArrayList<? super ArrayList> list=null;         list=new ArrayList<Object>();         list=new ArrayList<ArrayList>();

使用super关键字,泛型必须是继承的类型的自己或者其父类。

 

http://www.cnblogs.com/mengdd/archive/2013/01/21/2869861.html

 

Java 泛型约束