1.泛型概述
泛型是一种归纳思想的提升,其作用是提高代码的复用性,可移植性,可操作性。
2.泛型格式
Java中泛型规定:<自定义无意义英文大写单字母占位符>
一般常用: Type Element key value
泛型可以约束方法,类,接口
3.包装类
Java中对于基本数据类型做了封装,完成了对于基本数据类型的【包装类】
基本数据类型对应的包装类
byte Byte short Short
int Integer long Long
float Float double Double
char Character boolean Boolean
1.包装类的使用,可以满足Java中皆对象的操作规范,让代码操作更加统一化
2.包装类中对于数据类型提供了一定的解析方法
3.包装类使用不会增加开发压力,Java中提供了自动包装和自动拆箱
4.泛型在方法中使用
格式:
权限修饰符 [static] <自定义泛型> 返回值类型 方法名(形式参数列表) {
}
1.要求形式参数列表中必须有一个参数是当前自定义泛型,因为需要通过参数来约束当前方法运行过程中泛型对应的具体数据类型哪一个
2.返回值类型可以使用自定义泛型,被形式参数列表中传入的泛型对应具体数据类型控制
3.方法体内也可以使用自定义泛型,也是被参数当中泛型对应具体数据类型约束控制
5.泛型在类中使用
格式:
class 类名<自定义泛型无意义英文大写单个字母占位符> {
//成员变量不推荐使用泛型,存在一定的隐患,操作不方便
//成员方法可以使用类名声明的自定义泛型
}
类名使用泛型约束具体数据类型的格式
例子:
class Test<T> {
}
Eclipse:
类名<具体数据类型> 类对象 = new 构造方法<具体数据类型>();
IDEA:
类名<具体数据类型> 类对象 = new 构造方法<>();
1.类内的成员方法可以直接使用对应的类名声明泛型
2.类内成员方法使用的泛型具体数据类型是在创建当前类对象是约束
3.在创建当前类对象时没有约束泛型对应的具体数据类型,所有使用到泛型的位置都是Object类型,和泛型的使用规则不符合
4.类中使用泛型,是在满足代码普适行的情况下,也可以兼顾数据类型一致化要求
6.泛型在接口中使用
泛型在接口中的使用格式:
interface 接口名<自定义泛型无意义英文单个字母大写占位符> {
//自定义泛型只能给方法使用
}
接口中的成员变量不能使用自定义泛型
原因:1.没有具体的数据类型,无法进行初始化操作
2.成员变量static修饰,当前成员变量需要在加载阶段,明确所有内容,但是当前情况下,数据类型不明确