Java泛型随笔

在集合中使用泛型和自定义泛型

1.使用泛型需要先定义泛型。集合接口或集合类在jdk1.5时都修改为带泛型的结构。

2.实例化集合类时,可以指明具体的泛型类型。

3.指明完以后,在集合类或接口中凡是定义类或接口时,内部结构使用到泛型的位置,都指定为实例化时的泛型类型。

4.注意点:泛型的类型必须是类,不能是基本数据类型。如果实例化时,没有指明泛型的类型,泛型对应的类型按Object处理,但不等价于Object。泛型不同的引用不能相互赋值,即便引用的泛型类型是子父类的关系。静态方法中不能使用泛型,因为泛型是在实例化对象时指定的,而静态方法随类加载,此时还没有指定泛型的类型。异常类不能声明为泛型类。

5.泛型方法:方法中出现了泛型的结构,此泛型参数与类的泛型参数没有任何关系。泛型方法可以是静态方法。因为泛型参数是在调用方法时确定的,并非实例化类时确定的。

6.虽然类A是类B的父类,A< G >是B< G >的父类。但是G< A >和G< B >二者不具备子父类关系,二者是并列关系。此特性在一定程度上限制了多态性,使用通配符“?”可以解决此问题。二者共同父类为G<?>。

7.使用通配符(限制通配符除外)的引用不能添加数据,因为无法确定数据类型,能够读取数据,读取数据类型为Object。

8.限制通配符:<? extends A>:类型为A及其子类,可读数据不可添加数据。<? super A>:类型为A及其父类,可读数据,只能添加A及其子类类型数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值