码迷,mamicode.com
首页 > 其他好文 > 详细

优先使用泛型方法

时间:2020-05-05 20:08:50      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:tst   types   xtend   highlight   操作   客户   return   class   table   

正如类可以是泛型的,方法也可以是泛型的。 对参数化类型进行操作的静态工具方法通常都是泛型
的。 集合中的所有算法方法(如 binarySearch sort )都是泛型的。

// Uses raw types - unacceptable! [Item 26]
public static Set union(Set s1, Set s2) {
Set result = new HashSet(s1);
result.addAll(s2);
return result;
}

  此方法可以编译但有两个警告:

Union.java:5: warning: [unchecked] unchecked call to
HashSet(Collection<? extends E>) as a member of raw type HashSet
Set result = new HashSet(s1);
^
Union.java:6: warning: [unchecked] unchecked call to
addAll(Collection<? extends E>) as a member of raw type Set
result.addAll(s2);

  要修复这些警告并使方法类型安全,请修改其声明以声明表示三个集合(两个参数和返回值)的元
素类型的类型参数,并在整个方法中使用此类型参数。 声明类型参数的类型参数列表位于方法的修饰符
和返回类型之间。 在这个例子中,类型参数列表是 <E> ,返回类型是 Set<E> 。 类型参数的命名约
定对于泛型方法和泛型类型是相同的

泛型类型一样,泛型方法比需要客户端对输入参数和返回值进行显式强制转换的方法更安
全,更易于使用。 像类型一样,你应该确保你的方法可以不用强制转换,这通常意味着它们是泛型的。
应该泛型化现有的方法,其使用需要强制转换。 这使得新用户的使用更容易,而不会破坏现有的客户端

优先使用泛型方法

标签:tst   types   xtend   highlight   操作   客户   return   class   table   

原文地址:https://www.cnblogs.com/lIllIll/p/12831891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!