zoukankan      html  css  js  c++  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关键字,泛型必须是继承的类型的自己或者其父类。

    类型限定在泛型类、泛型接口和泛型方法中都可以使用,不过要注意下面几点:

    1、不管该限定是类还是接口,统一都使用关键字 extends

    2、可以使用&符号给出多个限定,比如

    public static <T extends Comparable&Serializable> T get(T t1,T t2)  

    3、如果限定既有接口也有类,那么类必须只有一个,并且放在首位置

    public static <T extends Object&Comparable&Serializable> T get(T t1,T t2)  

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

    http://blog.csdn.net/lonelyroamer/article/details/7864531

    http://blog.csdn.net/aminfo/article/details/7909823

  • 相关阅读:
    FastAdmin Shopro商城安装
    MYSQL ERROR 10060
    宝塔命令
    kdevtmpfsi挖矿病毒处理
    VUE安装
    原生JS请求(AJAX)
    Bootstrap: 模态框组件
    Bootstrap: 缩略图组件
    Bootstrap: 栅格系统
    Bootstrap: 下拉菜单组件 & 分页组件
  • 原文地址:https://www.cnblogs.com/hongdada/p/6236939.html
Copyright © 2011-2022 走看看