泛型通配符

当不确定集合中的元素的具体数据类型,可以使用泛型通配符,用?表示

import java.util.ArrayList;
import java.util.List;

public class Test7 {
    public static void main(String[] args) {
        Solution tmp = new Solution();
        List<String> list = new ArrayList<String>();
        tmp.test(list);
        
        List<C> list1 = new ArrayList<>();
        tmp.test1(list1);
        
        List<D> list2 = new ArrayList<>();
        tmp.test1(list2);
        
        List<A> list3 = new ArrayList<>();
        tmp.test2(list3);
        
        List<B> list4 = new ArrayList<>();
        tmp.test2(list4);
        
        List<F> list5 = new ArrayList<>();
        tmp.test3(list5);
    }
    
}

class Solution{
    //限制通配符
    public void test(List<?> list) {//test方法需要一个list集合的参数,但是不确定list集合到底存的数的类型是什么
        
    }
    
    public void test1(List<? extends C> list) {    //List容器中参数数据类型为C及其子类
        
    }
    
    public void test2(List<? super B> list) {    //List容器中的参数数据类型为B及其父类
        
    }
    
    public void test3(List<? extends E> list) {    //List容器中的参数数据类型为E的实现类
        
    }
}

class A{ 
    
}

class B extends A{
    
}

class C extends B{
    
}

class D extends C{
    
}

interface E{
    
}

class F implements E{
    
}

 

posted @ 2020-09-23 22:11  Peterxiazhen  阅读(116)  评论(0编辑  收藏  举报