Java小知识:为什么我们需要Java中的通用方法?

1.没有泛型的方法

假设您要编写一个方法,该方法需要两个集合并获得它们的交集。这是编写这种方法的一种方法:
public static Set getIntersection(Set set1, Set set2){
Set result = new HashSet();

for(Object o: set1){
	if(set2.contains(o))
		result.add(o);
}

return result;}

此方法不是类型安全的,编译器会发出警告。它有几个潜在的问题。首先,当调用该方法并返回一些set时,调用者可能不知道类型,并且需要对每个元素进行强制转换操作。其次,不能将具有不同类型的两个集合传递给该方法。最后,总的来说,我们应该始终修复警告消息。

2.泛型类型的方法

可以通过指定如下通用类型来固定该方法:
public static Set getIntersection(Set set1, Set set2){
Set result = new HashSet();

for(E o: set1){
	if(set2.contains(o))
		result.add(o);
}

return result;}

此方法是类型安全的,并且没有警告。我们指定这三个集合的元素类型应为相同的E。这样,调用方就知道返回类型,因此它可以直接使用其元素而无需强制转换。现在对元素类型有严格的限制,因此只有两个具有相同元素类型的集合才能获得交集。
请注意,在这种情况下,类型参数列表位于方法的修饰符及其返回类型之间。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值