• 泛型


    使用泛型的好处:

    泛型的用法是在容器后面添加<Type>,<Type>可以是类,抽象类,接口

    表示这种容器,只能存放这种类型(包括子类对象)

    Number的子类:int, float, double

    可以设计一个支持泛型的栈MyStack,设计这个类的时候,在类的声明上,加上一个<T>,表示该类支持泛型。

    T是typede缩写,也可以使用任何其他的合法的变量,比如A,B,X都可以,但是一般约定成俗使用T,代表类型

    ArrayList  heroList<?extends Hero>表示这是一个Hero泛型或者其子类泛型

    从heroList取出的对象,一定可以转型成Hero的,但是不能往里面放东西

    ArrayList heroList<? super Hero> = new ArrayList<Object>()表示这是一个Hero泛型或者其父类泛型

    可以往里面插入Hero以及Hero的子类,但是不能从里面取数据出来(可能转换类型失败)。

    特例:ArrayList<?> generalList = apHeroList;

    像这种形式只能用 Object o = generalList.get(0);取出来,因为?代表任意泛型

    总结:

    只取出,不插入,?extends Hero

    只插入,不取出,?super Hero

    如果希望,又能插入,又能取出,就不要使用通配符

    父类类型与子类类型不能相互转化,因为你不知道父类类型指向的是什么确切的类型

  • 相关阅读:
    前端页面的防抖与节流
    vue3.0 响应式原理
    cssBEM命名规范及常用CSS class 命名
    vue2.x 响应式原理
    npm 相关命令
    Node之 fs
    Node 之 Buffer
    Node之path
    Node之process
    Node.js 如何处理 ES6 模块
  • 原文地址:https://www.cnblogs.com/zxj-262410/p/8490308.html
Copyright © 2020-2023  润新知