如果在编译的时候没有定义 泛型 那么在运行的时候可能会因为类型 不对应造成错误。
为了在编译的编译就强制定义 类型。就有了泛型。也就是定义了泛型,在编译的时候就能发现类型错误。
注意泛型定义的格式
泛型接口
如果类型不明确的情况下可以用这种方法定义:<?> 用来做占位符
泛型限定:定义了泛型的范围
例(写法):
这个地方其实并不难理解,下面有简单好记的解释
<? extends E> 解释 <'?' 继承自(extends) E>
只要是继承自E的类,都是E的子类。 也就是E的子类都可以接受。
<? super E> 解释 <'?' 的子类是(super) E>
这个类只要是 E 或者 E 的父类 即可。 也就是E的父类都可以接受。