泛型知识点
2021-06-07 09:38:38 0 举报
AI智能生成
泛型知识点
作者其他创作
大纲/内容
简介
Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常.
泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型
使用泛型
泛型类:就是把泛型定义在类上,用户使用该类的时候,才把类型明确下来
泛型方法:某一个方法上需要使用泛型....外界仅仅是关心该方法,不关心类其他的属性
泛型类派生出的子类
子类泛型类型确定
子类泛型类型不确定:继续使用父类定义的泛型
泛型通配符
在泛型中并没有像我们面向对象的继承结构,想要使用任意的泛型类型,我们可以使用通配符!
?号通配符表示可以匹配任意类型,任意的Java类都可以匹配
就只能调对象与类型无关的方法,不能调用对象与类型有关的方法
PECS(Producer Extends Consumer Super)原则
设定通配符上限
<? extends Type>
设定通配符下限
<? super Type>
带有子类限定的可以从泛型读取【也就是--->(? extend T)】-------->Producer Extends
带有超类限定的可以从泛型写入【也就是--->(? super T)】-------->Consumer Super
通配符和泛型方法
如果参数之间的类型有依赖关系,或者返回值是与参数之间有依赖关系的。那么就使用泛型方法
如果没有依赖关系的,就使用通配符,通配符会灵活一些.
使用泛型好处:
代码更加简洁【不用强制转换】程序更加健壮【只要编译时期没有警告,那么运行时期就不会出现ClassCastException异常】可读性和稳定性【在编写集合的时候,就限定了类型】
类型擦除
泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据
但编译器编译完带有泛形的java程序后,生成的class文件中将不再带有泛形信息,以此使程序运行效率不受到影响,这个过程称之为“擦除“。
泛型的应用
参考BaseDao的编写
0 条评论
下一页