Java教程

java 泛型

本文主要是介绍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 的父类

 

这篇关于java 泛型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!