使用泛型时需要注意的几个点:
1.不能用基本数据类型实例化类型参数
2.运行时候类型检查不适用于泛型
3.不能实例化泛型类型的数组
4.静态方法不能使用类上下文中定义的类型参数
5.泛型在异常中的使用,不能继承异常基类
6.类型擦出冲突
7.另一个泛型原则
下面看看这些注意点:
第一:不能用基本数据类型实例化类型参数,其中原因就是类型擦出后T的类型变成了Object,而基本数据类型是不能转换为Object类型的,需要使用包装类。
例如:

第二:运行时候类型检查不适用于泛型,因为对JVM来说,根本没有泛型这个概念,例如:


第三: 不能创建泛型数组,例如:

涉及到泛型设计的一个原则有:如果一段代码在编译时没有提出“未经检查的转换警告,则程序在运行时不会引入ClasscastException异常“。
还有一个特别重要的特点就是数组可以向上转型,例如List<String>[] list = new ArrayList<String>[10];
利用这个特性我们可以看一个代码:

第四:不能实例化类型参数:

第五:泛型类不能继承异常基类:

同时也不能使用try抛出异常:

但是可以这样:

浙公网安备 33010602011771号