泛型的总结
泛型的总结
- 泛型不支持使用基本数据类型,基本数据类型要使用时需要使用包装类。
- 泛型不支持使用数组
- 当使用基本数据类型包装类且获取数据时,如果该属性没有赋值保持默认值的话,那它的值为null,这时要注意自动拆箱会导致空指向异常。
- 同一个类上可以定义多个泛型标记。
- 当一个泛型类做为某个方法的参数时,就需要用到通配符
?
。此时,不能设置数据,只能取出数据。 - 当使用
?
通配符取出数据时,数据类型是Object,要给变量赋值时,必须向下转型。 T extends 类
或? extends 类
设置泛型的上限,可以在类声明或方法上使用。? super 类
设置泛型下限,只能在方法上使用。- 泛型接口分两种:一是在子类继续设置泛型标记。二是子类不设置泛型标记,而为父类接口明确地定义一个泛型类型。
- 泛型方法
public static <T> T fun(T t)
T的类型由传入的参数决定。
方法参数中使用通配符 ?
和 不声明泛型类型 和 声明泛型具体类型 区别:
1、public void fun(Generic<?> temp)
使用通配符 ? 获取到的数据类型是 Object,要赋值变量就必须向下转型,同时,因为 ? 不能确定类型,所以不能设置数据。
2、public void fun(Generic temp)
不声明泛型相当于默认是Objecte,此时,可以设置或取出数据,同样,获取到的数据类型是 Object,要赋值变量就必须向下转型。
3、public void fun(Generic
声明泛型具体类型时,可以设置或取出数据,获取到的数据类型是其声明时的类型,要赋值变量不需要向下转型 。
相关推荐
zhangxiafll 2020-11-13
anglehearts 2020-08-17
xiaoxiaoCNDS 2020-06-25
TreasureZ 2020-06-16
lantingyue 2020-05-31
iconhot 2020-05-26
luohui 2020-04-29
fraternityjava 2020-04-29
yicuncuntu0 2020-04-19
Justhavefun 2020-02-21
alicelmx 2020-02-13
iconhot 2020-01-28
yicuncuntu0 2019-12-18
wxy0 2019-12-09
丁一鸣的CSDN 2011-06-25
iosJohnson 2019-11-05