Java中的泛型

泛型

概述:泛型是一种未知的数据类型,在创建对象时确定类型。例如E e:Element 元素T t:Type类型,也可以看作一个数据变量,用来接收数据类型。

创建集合对象时使用泛型

通过对元素类型的约束可以规避掉后面类型转换的麻烦,若没有泛型约束,则默认为Object对象,可以存放任意类型的数据,由于多态的弊端无法调用该元素类型特有的方法,需向下转型且可能会引发异常。

定义含有泛型的类

只需在类名后跟上<E>,将类型不确定的成员变量类型也改为<E>,则其默认类型就为Object。在创建对象时声明需要的类型即可。

定义含有泛型的方法

格式:

修饰符 <泛型> 返回值类型 方法名(参数列表){  //在修饰符后面定义泛型,在参数列表中使用泛型
    方法体;
}

使用:在调用方法时,传递什么类型的参数,就确定了泛型的类型。

定义含有泛型的接口
  • 使用方式一

    接口使用泛型,实现类也跟着接口走使用泛型。相当于定义了含有泛型的类,创建对象时再确定类型。

  • 使用方式二

    定义接口的实现类并指定接口类型,创建对象时只能使用此类型。


泛型通配符

概述:当要接收的元素的数据类型未知时,可以用<?>来接收,不需要在修饰符后定义,但不可用未知通配符往集合中储存数据。泛型只能作为方法的参数使用,而不能在new对象时使用。

注意:泛型中没有继承的概念。迭代器的next方法取出的元素类型是Object,因此可接受任意类型数据。

通配符高级使用(受限泛型)
  • 上限:只能接收该E类型及其子类

    类名<? extends E类>对象名

  • 下限:只能接收该E类型及其父类

    类名<? super E类>对象名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值