概念
- 所谓泛型就是指,在对象建立时不指定类中属性的具体类型,而由外部在声明及实例化对象时指定类型
- 泛型可以解决数据类型的安全性问题,其重要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型
泛型格式
- 泛型类定义
-
泛型对象定义
-
构造方法上应用泛型
注意事项
-
泛型的指定是无法指定基本数据类型的,必须设置成一个类,所以在设置一个数字时就必须使用包装类,但是在JDK1.5之后提供了自动装箱的操作。、
-
泛型的安全警告
在泛型应用中最好在声明类对象时指定好其内部的数据类型,如果不指定类型,这样用户在使用这样的类时,就会出现不安全的信息警告。这时候所有的类型统一使用Object进行接收,也就是在定义时将泛型擦除了。不指定泛型的程序流程图如下。
通配符?
- 应用场景
问题:在进行引用传递时,泛型类型必须匹配才可以传递,否则是无法传递的
解决:
- 注意事项
如果使用“?”接收泛型对象时,则不能设置被泛型指定的内容。例子如下
受限泛型
- 在引用传递中和泛型操作中也可以设置一个泛型对象的范围上限和范围下限
- 泛型的上限
- 表示参数化的类型可能是所指定的类型或者是此类型的子类型
- 具体格式如下:
- 泛型的下限
- 表示参数化的类型可能是所指定的类型或者是此类型的父类型
- 具体格式如下:
- 举例说明
1.泛型的上限例子:
注:也可直接在类的声明出指定泛型的上限范围,代码如下:
2.泛型的下限例子
泛型与子类继承的限制
一个类的子类可以通过对象多态性为其父类实例化,但是在泛型操作中,子类的泛型类型是无法使用父类的泛型接收的,例如,Info