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。这样,调用方就知道返回类型,因此它可以直接使用其元素而无需强制转换。现在对元素类型有严格的限制,因此只有两个具有相同元素类型的集合才能获得交集。
请注意,在这种情况下,类型参数列表位于方法的修饰符及其返回类型之间。
在这里插入图片描述

发布了98 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zhaozihao594/article/details/104262966