Java泛型解析

4、有界泛型

:是指 “ 上界通配符 (Upper Bounds Wildcards) ”

:是指 “ 下界通配符 (Lower Bounds Wildcards) ”

如 List 大家以为元素为 T以及其所有子类的对象 的List。其实不是。元素类型 仅指T的某一个不确定的子类,是单一的一个不确定类,没有具体哪个类。因此不能插入一个不确定的。

List 大家以为元素为 T以及其父类的对象 的List。其实不是,元素类型 仅指T的某一个不确定的父类,是单一的一个不确定类(只确定是T的父类),没有具体哪个类。

因此:

不能往List中插入任何类型的对象。唯一可以保证的是,你可以从中读取到T或者T的子类。

可以往List中插入T或者T子类的对象,但不可以插入T父类的对象。可以读取到Object或者Object子类的对象(你并不知道具体的子类是什么)。

如果频繁支持读取数据,不要求写数据,使用。即生产者 使用

如果频繁支持写入数据,不特别要求读数据,使用。即消费者 使用

如果都需要支持,使用

你可能感兴趣的:(Java泛型解析)