zoukankan      html  css  js  c++  java
  • Java 泛型中的<? super T>和<? extends T>

    super 要求 ? 必须是 T 的超类或者自身

    extends 要求 ? 必须是T的子类或者自身

        /**
         *  <? super T>
         *  super 要求 ? 必须是 T 的超类或者自身
         * Super
         */
        @Test
        public void testSuper() {
            //ArrayList泛型为String,符合<? super String>的要求,String和String本身是相同的类型
            List<? super String> ts = new ArrayList<String>();//正确
    
            //ArrayList的泛型是Object,Object是所有类的父类,符合<? super T>的要求
            List<? super String> objects = new ArrayList<Object>();//正确
    
    
            //ArrayList的泛型是String,String和Integer没啥关系,不符合要求
            //List<? super Integer> strings = new ArrayList<String>();//错误
    
            //ArrayList的泛型是String,String是Object的子类,不符合要求
            //List<? super Object> strings = new ArrayList<String>();//错误
            
    
        }
        /**
         * <? extends T>
         *     extends 要求 ? 必须是T的子类或者自身
         */
        public void testExtends(){
            //ArrayList的泛型是String,String是Object的子类,符合<? extends T>的要求
            List<? extends Object> strings = new ArrayList<String>(); //ArrayList的泛型是Object,Object是String的父类,不符合<? extends T>的要求
            //List<? extends String> objects = new ArrayList<Object>(); //错误
    
        }
  • 相关阅读:
    [HNOI/AHOI2018]转盘
    [PKUSC2018]星际穿越
    [PKUSC2018]最大前缀和
    [PKUSC2018]真实排名
    PKUSC2018游记
    [CF843D]Dynamic Shortest Path
    [BZOJ5358]/[HDU6287]口算训练
    [CF160D]Edges in MST
    AGC041D Problem Scores
    BZOJ4079 [WF2014]Pachinko
  • 原文地址:https://www.cnblogs.com/zhangminjie/p/4357531.html
Copyright © 2011-2022 走看看