泛型通配符

public static void main(String[] args) {
Dd d = new Dd();
List<String> l1 = new ArrayList<String>();
d.test(l1);

List<Integer> l2 = new ArrayList<Integer>();
d.test(l2);

List<C1> lc = new ArrayList<C1>();
d.test1(lc);

List<D1> ld = new ArrayList<D1>();
d.test1(ld);

List<A1> la = new ArrayList<A1>();
d.test2(la);

List<B1> lb = new ArrayList<B1>();
d.test2(lb);

List<IA> lia = new ArrayList<IA>();
d.test3(lia);

//d.test3(la); la不是IA的实现类
}

static class Dd{

public void test(List<?> list){}//test方法需要一个list集合的参数,不确定list集合中到底是存的数据类型是什么

public void test1(List<? extends C1> list){}//list参数的元素数据类型是在C1及其子类

public void test2(List<? super C1> list){}//list参数的元素类型是在C1及其父类

public void test3(List<? extends IA> list){} //list参数的元素数据类型是IA实现类
}
class A1{}
class B1 extends A1{}
class C1 extends B1{}
class D1 extends C1{}
interface IA {}
class IAImpl implements IA{}
}
posted @   SmallPepsi  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示