zoukankan      html  css  js  c++  java
  • JAVA 泛型通配符 ? EXTENDS SUPER 的用法

    1. <? extends Hero>

    ArrayList heroList<? extends Hero> 表示这是一个Hero泛型或者其子类泛型
    heroList 的泛型可能是Hero
    heroList 的泛型可能是APHero
    heroList 的泛型可能是ADHero
    所以 可以确凿的是,从heroList取出来的对象,一定是可以转型成Hero的


    但是,不能往里面放东西,因为
    放APHero就不满足<ADHero>
    放ADHero又不满足<APHero>

    2. <? super Hero>

    ArrayList heroList<? super Hero> 表示这是一个Hero泛型或者其父类泛型
    heroList的泛型可能是Hero
    heroList的泛型可能是Object

    可以往里面插入Hero以及Hero的子类
    但是取出来有风险,因为不确定取出来是Hero还是Object

    3. 泛型通配符?

    泛型通配符? 代表任意泛型
    既然?代表任意泛型,那么换句话说,这个容器什么泛型都有可能

    所以只能以Object的形式取出来
    并且不能往里面放对象,因为不知道到底是一个什么泛型的容器

  • 相关阅读:
    简单登录接口
    While循环猜年龄
    linux全面详细转载文章
    ansible
    Python之OS模块函数
    Python脚本-自动下载安装
    LVS(3种模式+10种调度算法)
    Dockerfile构建镜像
    Docker简易安装及命令实例
    find命令实例
  • 原文地址:https://www.cnblogs.com/changna1314/p/6869364.html
Copyright © 2011-2022 走看看