Java泛型方法与普通成员方法以及案例说明(五)

在这里插入图片描述
我们需要特别指出一下,前面的第二章节有一个抽检品案例中有这样一个方法:
在这里插入图片描述
这个方法中虽然有T泛型标识,但是它仅仅是一个普通的成员方法,方法返回类型是T,采用了泛型类的泛型类型。

泛型方法的语法

在这里插入图片描述

泛型方法的案例

泛型方法定义我们就写在第二章节里面的奖品泛型类中,

泛型方法定义

泛型方法中的泛型标识用E,为了区别下泛型类中的泛型标识
在这里插入图片描述

泛型方法调用

在这里插入图片描述
上面我们把泛型方法的泛型类型标识 与泛型类的泛型标识分别用E和T做了区分,倘若,我们把标识都改为T会怎么样呢?
在这里插入图片描述
在这里插入图片描述

所以泛型方法的泛型类型 是独立于 泛型类的泛型的,即使泛型标识一样但是不会相互干扰

泛型方法优点

定义一个泛型方法,可以操作不同的数据类型
在这里插入图片描述

调用泛型类中的普通成员方法(与调用泛型方法做对比)

在这里插入图片描述
经过对比,在总结一句:调用普通成员方法,强制要求采用的泛型必须遵从类的泛型;但是泛型方法里的泛型,都是我们在调用时去独立指定的。

语法补充

在这里插入图片描述

在这里插入图片描述
解释下为什么泛型类中的,返回值为T的普通成员方法不能使用静态的?

因为泛型类在创建对象时指定类型,而静态方法是通过类名直接调用,此时成员方法类型还未被指定,会报错。

为什么泛型方法可以使用静态的?

泛型方法在被调用时直接指定参数。

对泛型列表进行扩展

在这里插入图片描述
在这里插入图片描述

泛型方法与可变参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

泛型方法总结

1、泛型方法能使方法独立于类而产生变化
所以我们在工作中能够使用泛型方法就使用泛型方法,尽量不要再去定义泛型类,泛型方法更加灵活

2、如果static方法要使用泛型能力,就必须使其成为泛型方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值