【无标题】

本文详细介绍了Java中的泛型,包括泛型在集合、自定义类、方法中的使用,泛型的继承特性,以及通配符的限制条件。泛型提高了代码的类型安全性,允许在编译时检查类型,并减少了强制类型转换。此外,还提到了泛型方法和泛型类的声明与实例化,以及泛型与接口、异常和数组的交互规则。
摘要由CSDN通过智能技术生成

所谓的泛型,就是允许在定义类,接口时通过一个标识表示类中某个属性的类型或者时某个方法的返回值及参数类型
二、集合中泛型的使用
1.集合接口或集合类在jdk5.0都修改为带泛型的结构
2.在实例集合类时,可以指明具体的泛型类型
3.指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法,构造器,属性等)使用到类的泛型的位置,都指定为实例化泛型类型
4.注意点:泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类型的位置,拿包装类替换
5.如果实例化时,没有指明泛型的类型。默认类型为java.lang.Object
三、自定义泛型类
1.泛型类ke能由多个参数,此时应将多个参数一起放到尖括号内:比如<E1,E2,E3>
2.泛型类的构造器如下:public GenericClass(){}。
3.实例化过后,操作原来泛型位置的结构必须与指定的泛型类型一致
4.泛型不同的引用不能相互赋值
尽管在编译时ArrayList和ArrayList是两种类型,但是,在运行时只有一个ArrayList被加载到JVM中。
5.泛型如果不指定,将被擦除,泛型对于的类型均按照Object处理,但不等家于Object
6.如果泛型结构是一个接口或抽象类,则不可创建泛型类的对象
7.jdk1.7,泛型的简化操作:ArrayListflist=newArrayList<>()。
8泛型的指定中不能使用基本数据类型,可以使用包装类替换
9.在类/接口上声明的泛型,在本类或本接口中即代表某种类型,可以作为非静态属性的类型,非静态方法的参数类型,非静态方法的返回值类型。但在静态方法中不能使用类的泛型
10.异常类不能是泛型的
11.不能使用new E[]。但是可以:E[]elements(E[])new Object[capacity]
参考:ArrayList源码中声明:Object[]elementData,而非泛型参数类型数组
12.父类有泛型,子类可以选择保留泛型也可以选择指定泛型类型
四、泛型方法
1.方法,也可以被泛型化,不够此时定义在其中的类是不是泛型类。在泛型方法中可以定义泛型参数,此时,参数的类型就是传入数据类型。
在这里插入图片描述

五、泛型在继承方面体现
1.虽然类A是类B的父类,但是G和G二者不具备子父类关系,二者是并列关系。
补充:类A是类B的父类,A B
六、通配符的使用
在这里插入图片描述

有限制条件的通配符号使用
1.extends A:
G<?extends A>可以作为G< A >和G的父类,其中B是A的子类
2.?super A:
G<?super B>可以作为G< A>和G的父类,其中B是A的父类
发工具与关键技术: Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汝甚骚吾不及

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值