• java 泛型


    四、泛型的通配符

    通配符:传入的类型有一个指定的范围,从而可以进行一些特定的操作

    泛型中有三种通配符形式:

    1.<?>无限制通配符

    2.<? extends E> extends 关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或者是此类型的子类。

    3.<? super E> super 关键字声明了类型的下界,表示参数化类型可能是指定类型,或者是此类型的父类。

    无限制通配符 < ?>

    要使用泛型,但是不确定或者不关心实际要操作的类型,可以使用无限制通配符(尖括号里一个问号,即 <?> ),表示可以持有任何类型。

    ? 和 Object 不一样,List<?> 表示未知类型的列表,而 List<Object> 表示任意类型的列表。

    如传入个 List<String> ,这时 List 的元素类型就是 String,想要往 List 里添加一个 Object,这当然是不可以的。

    上界通配符 < ? extends E>

    在类型参数中使用 extends 表示这个泛型中的参数必须是 E 或者 E 的子类,这样有两个好处:

    • 如果传入的类型不是 E 或者 E 的子类,编辑不成功

    • 泛型中可以使用 E 的方法,要不然还得强转成 E 才能使用

    下界通配符 < ? super E>

    在类型参数中使用 super 表示这个泛型中的参数必须是 E 或者 E 的父类

  • 相关阅读:
    关于Token
    利用Chrome模拟访问移动端网页
    文件上传
    final修饰符
    后台返回字符串类型function的处理 (递归算法)
    javascript typeof
    单点登录的原理与简单实现
    response.setHeader()的用法
    UML类图6种关系的总结
    子类父类属性的覆盖(继承)
  • 原文地址:https://www.cnblogs.com/lalalazar/p/15597936.html
Copyright © 2020-2023  润新知