泛型通配符

 只能用于声明变量|形参上,一般是形参类型上,表示可以接收任意

 不能用在

 1、创建对象,即new 后面

 2、声明泛型类、泛型接口,即class和interface

 3、声明泛型方法,即返回值类型前面<>中

匹配任意类型的通配符


受限泛型:上限、下限

 通配符指定上限

上限extends:使用时指定的类型必须是继承某个类,或者实现某个接口,即<= ,如

 ? extends Person

 ? extends Comparable

满足以下规则

 List 满足List

 List 满足List

 List 满足List

 List 满足List

 List 不满足 List 因为List 等价于List


如果使用“?extends  类型”接收泛型对象的时候,则不能设置被泛型指定的内容


通配符指定下限

下限super:使用时指定的类型不能小于操作的类,即>=,如

? super Apple

存在以下规则:

 ArrayList  满足ArrayList

 ArrayList  满足ArrayList

 ArrayList  满足ArrayList

 ArrayList 满足ArrayList

 ArrayList 满足ArrayList

 ArrayList 不满足 ArrayList因为List 等价于List,那么可能ArrayList

 ArrayList 不满足 ArrayList 因为可能ArrayList< FujiApple>


如果使用“? super类型”接收泛型对象的时候,则能够添加数据,但是不能添加父对象


你可能感兴趣的:(泛型通配符)