类型通配符上限

主函数

package typeWildcardTop;

import java.util.ArrayList;

public class typeWildcardTopTest {


    /*

     */
    public static void main(String[] args) {
//        test1();
        test2();
    }
    /*
    测试showList接收ArrayList类型 ArrayList接收各种类型参数
    创建animals cats mincats集合 传入show输出
     */
    public static void test1(){
        ArrayList<Animals> animals = new ArrayList<>();
        ArrayList<Cats> cats = new ArrayList<>();
        ArrayList<minCats> minCats = new ArrayList<>();
        /*
        showList 接收ArrayList类型!!! ArrayList接收类型参数 最后形成接收各种类型的集合
         */
        showList(animals);
        showList(cats);
        showList(minCats);
    }

    /*
    what:
        输出ArrayList集合每一个元素
        ArrayList集合元素可能是任意类型
    params:
        首先他接受的ArrayList类型  ArrayList接收类型参数
        接收ArrayList类型!!! ArrayList接收类型参数 最后形成接收各种类型的集合
    careout:
        类型通配符列表 对象 无法填充元素 因为你不知道该对象元素是何种类型
     */
    public static void showList(ArrayList<?> list) {

        //类型通配符对象 无法填充元素
//        list.add(new Cats());
//        list.add(new Animals());
//        list.add(new minCats());
        for (int i = 0;i<list.size();i++) {
             System.out.println(list.get(i));
         }

    }
    /*
    what:
        测试 接收ArrayList类型对象  ArrayList设置接受类型上限为Cats
        最后 参数接收上限为Cats的列表对象
     */
    public static void test2(){
        ArrayList<Animals> animals = new ArrayList<>();
        ArrayList<Cats> cats = new ArrayList<>();
        ArrayList<minCats> minCats = new ArrayList<>();


//        showListTop(animals);  //失败 因为只能接收Cats以下的列表
        showListTop(cats);
        showListTop(minCats);
    }

    /*
    what:
        设置ArrayList 接收类型的上限 凡是上限以上无法接收类型
     */

    public static void showListTop(ArrayList<? extends Cats> list){
        for(int i = 0;i<list.size();i++)
        {
            System.out.println(list.get(i));
        }
    }
}

Animals 父类

package typeWildcardTop;

/*
what:
    父类 是一个类型!!!
 */
public class Animals {
}

子类Cats

package typeWildcardTop;

public class Cats extends Animals{
}

子类minCats

package typeWildcardTop;

public class minCats extends Cats{
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值