泛型通配符

43 篇文章 0 订阅

泛型通配符

import java.util.ArrayList;

import java.util.Collection;

 

/*

 * 泛型高级(通配符)

 * ?:

 * ? extends E:

 * ? super E:

 *

 * */

 

class Animal{}

class Dog extendsAnimal{}

classCat extendsAnimal{}

 

public classGenericDemo {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

 

        //泛型如果是明确的写的时候,前后必须一致

        Collection<Object>c1 = newArrayList<Object>();

//      Collection<Object>c2 = new ArrayList<Animal>();  //出错

//      Collection<Object>c3 = new ArrayList<Dog>();  //出错

//      Collection<Object>c4 = new ArrayList<Cat>();  //出错

       

        //?表示任意的类型都是可以的

        Collection<?>c5 = newArrayList<Object>();  //正确

        Collection<?>c6 = newArrayList<Object>();  //正确

        Collection<?>c7 = newArrayList<Object>();  //正确

        Collection<?>c8 = newArrayList<Object>();  //正确

       

        //? extends E:向下限定,E及其子类

//      Collection<?extends Animal> c9 = new ArrayList<Object>();  //出错

        Collection<?extendsAnimal> c10 = new ArrayList<Animal>();  //正确

        Collection<?extendsAnimal> c11 = new ArrayList<Dog>();  //正确

        Collection<?extendsAnimal> c12 = new ArrayList<Cat>();  //正确

       

        //? super E:向上限定,E及其父类

        Collection<?superAnimal> c13 = new ArrayList<Object>();  //正确

        Collection<?superAnimal> c14 = new ArrayList<Animal>();  //正确

    //  Collection<?super Animal> c15 = new ArrayList<Dog>();  //出错

    //  Collection<?super Animal> c16 = new ArrayList<Cat>();  //出错

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值