zoukankan      html  css  js  c++  java
  • 泛型中? super T和? extends T的区别

    经常发现有List<? super T>、Set<? extends T>的声明,是什么意思呢?<? super T>表示包括T在内的任何T的父类,<? extends T>表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。

    extends

    通配符 与 T 的区别

    T:作用于模板上,用于将数据类型进行参数化,不能用于实例化对象。 
    ?:在实例化对象的时候,不确定泛型参数的具体类型时,可以使用通配符进行对象定义。

    < T > 等同于 < T extends Object>
    < ? > 等同于 < ? extends Object>
    <? extends T>:是指 “上界通配符(Upper Bounds Wildcards)”
    
    <? super T>:是指 “下界通配符(Lower Bounds Wildcards)”

    ? extends T>限定参数类型的上界:参数类型必须是T或T的子类型

    <? super T> 限定参数类型的下界:参数类型必须是T或T的超类型

  • 相关阅读:
    单例对象
    G1回收算法
    Java锁
    VUE开发
    Java线程池
    Java线程状态
    什么是进程,什么是线程
    maven 常用命令
    linux启动脚本,暂停脚本
    delphi---控件使用
  • 原文地址:https://www.cnblogs.com/a8457013/p/8252354.html
Copyright © 2011-2022 走看看