美文网首页
这两种通配符类型在Java中的应用场景有哪些?

这两种通配符类型在Java中的应用场景有哪些?

作者: JAVA加油 | 来源:发表于2023-08-10 07:35 被阅读0次

这两种通配符类型在Java中的应用场景有哪些?

List<? extends Number>和List<? super Number>是Java泛型中的两种通配符类型,它们在不同的应用场景中有不同的用途。

List<? extends Number>的应用场景:

当我们需要从列表中读取元素,但是不关心元素的具体类型时,可以使用List<? extends Number>。例如,我们可以使用List<? extends Number>来表示一个元素类型为某种Number类型的列表,然后从中读取元素并进行处理。

当我们需要传递一个只读的列表时,可以使用List<? extends Number>。由于我们无法向该列表中添加元素,因此可以确保该列表的元素类型不会被改变。

当我们需要传递一个泛型类型参数的上限时,可以使用List<? extends Number>。例如,我们可以定义一个方法public <T extends Number> void process(List<T> list),然后将一个List<? extends Number>类型的列表传递给该方法,因为List<? extends Number>是List<T>的子类型。

List<? super Number>的应用场景:

当我们需要向列表中添加元素,但是不关心元素的具体类型时,可以使用List<? super Number>。例如,我们可以使用List<? super Number>来表示一个元素类型为Number或Number的超类的列表,然后向其中添加元素。

当我们需要传递一个泛型类型参数的下限时,可以使用List<? super Number>。例如,我们可以定义一个方法public void process(List<? super Integer> list),然后将一个List<Number>类型的列表传递给该方法,因为List<Number>是List<? super Integer>的父类型。

总之,List<? extends Number>和List<? super Number>在Java泛型中具有不同的应用场景。我们应该根据具体的需求和使用场景来选择使用哪种通配符类型。

相关文章

  • 通配符详解 extends super

    在java泛型中,? 表示通配符,代表未知类型,< ? extends Object>表示上边界限定通配符,< ?...

  • java泛型

    1:问:什么是 Java 泛型中的限定通配符和非限定通配符?有什么区别? 答:限定通配符对类型进行限制,泛型中有两...

  • Java 泛型通配符的思考

    Java中泛型通配符思考 通配符有在Java中有两种 extends , super 两个! 结合Scala中的逆...

  • Android开发之JNI基础知识

    带着问题入场: 什么是JNI,NDK, 与Java是什么关系,有什么应用场景? JNI提供了哪些基本数据类型? 接...

  • 泛型程序设计---通配符类型

    1.通配符概念  通配符类型中,允许类型参数变化。例如,通配符类型  表示任何泛型类型Pair类型,它的类型参数是...

  • Java基础知识大全

    1. JAVA基础 1.1 Java基本类型有哪些?它们分别占用多少字节? Java中的基本类型包括: byte(...

  • Java源码系列之String

    前言 字符串在我们的工作场景中应用广泛,不同于基本数据类型,Java中的字符串属于对象,Java中提供了 Stri...

  • JAVA原子操作

    JAVA中原子操作有哪些? 1: java的基本类型中除了long和double类型的赋值操作.基本类型如下:by...

  • Java那些事—泛型通配符

    Java的类型通配符,可以出现在类、方法上面。最常用的方式就是集合类,例如List,Set等类上面。 通配符类型 ...

  • Java 中的 T,E,K,V,?

    一、前言 Java 中的 T,E,K,V,?本质上都是通配符,约定的定义如下 ?表示不确定的 java 类型 T ...

网友评论

      本文标题:这两种通配符类型在Java中的应用场景有哪些?

      本文链接:https://www.haomeiwen.com/subject/mfjmpdtx.html