泛型通配符
当不确定集合中的元素的具体数据类型,可以使用泛型通配符,用?表示
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{ }
作者:Ryanjie
出处:http://www.cnblogs.com/ryanjan/
本文版权归作者和博客园所有,欢迎转载。转载请在留言板处留言给我,且在文章标明原文链接,谢谢!
如果您觉得本篇博文对您有所收获,觉得我还算用心,请点击右下角的 [推荐],谢谢!