泛型
活动地址:CSDN21天学习挑战赛
1.1概念
泛型是程序设计语言的一种方式,在泛型中允许程序员在强类型程序设计语言中编写代码时使用一些不指定的类型,也就是将类型由原来的具体类型参数化,而在实例化时作为参数指明类型;
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数;
1.1.1 样式
- <类型>:指定一种类型的格式,这里的类型可以看作为形参,
- <类型1 , 类型2>:指定有多种类型的格式,可以用逗号隔开;
1.2 泛型类
1.2.1 格式
修饰符 class 类名<类型>{ }
1.2.2 补充
- 值得注意的是,泛型必须是封装类类型,也就是只能代表引用类型,而不能是基本数据类型,比如整型不能使用 int 而要使用 Integer ;
1.2.3 范例
下图 是一个十分简单的泛型类,该泛型类由实例化对象的过程中对类型进行具体化,并应用到有关该范型类的变量或者方法,实现一行代码实现类似于重载的功能;
根据下图我们可以看到,在实例化对象后就已经确定了当前的类型,我们只能用相同的类型进行编辑,而一旦类型与实现对象的类型不符,则会发生编译错误;
1.3 泛型方法
1.3.1 格式
修饰符<类型> 返回值类型 方法名( 类型 变量名 ){ }
1.3.2 范例
泛型方法的定义如下图所示,泛型类的好处是在对类实例化对象的时候不需要去指明当前泛型所代指的类型,而是在传入的参数中判断当前是一个什么类型;
由下图我们可以看到,我们在对该类的泛型方法进行调用的时候只需要将所需要的参数传入,然后可以通过 getClass() 方法返回当前信息查看泛型当前的数据类型;
1.4 泛型接口
1.4.1 格式
修饰符 interface 接口名<类型>{ }
1.4.2 范例
常用的 List 集合就是一个泛型接口,将其实例化的时候必须指明数据类型,并且对其添加数据的时候也只能添加指明的数据类型;