当前位置: 首页 > article >正文

类型通配符上限

主函数

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{
}


http://www.kler.cn/a/547728.html

相关文章:

  • Brian Kernighan 算法
  • HTML,API,RestFul API基础
  • 科普:“表格式 ”与“ 存储格式”
  • 【环境配置】Ubuntu 22.04 C++ header file not found using Vim with YouCompleteMe
  • Redis 设置密码无效问题解决
  • c++--变量内存分配
  • 【开源项目】Excalidraw手绘风格白板(保姆级)教程
  • 如何学BI大数据
  • Html、Markdown的信息提取
  • LabVIEW 中 dotnet.llb 库功能
  • 05-服务保护和分布式事务(Sentinel、Seata)
  • Linux文件管理:硬链接与软链接
  • 图论 - 一些经典小算法思想(无题目例子)
  • 《open3d qt 网格泊松采样成点云》
  • 关于Dest1ny:我的创作纪念日
  • JavaScript原型和原型链
  • 代码随想录二刷|动态规划3
  • 鸿蒙Harmony-应用状态-AppStorage详细介绍
  • 蓝桥杯---排序数组(leetcode第912题)
  • 神经网络常见激活函数 12-Swish函数