第27条:优先考虑泛型方法
就如类可以从泛型中受益一般,方法也一样。静态工具方法尤其适合于泛型化。Collections中所有“算法”方法是泛型化的。
publlic static Set union(Set s1, Set s2) {
Set result = new HashSet(s1);
result.addAll(s2);
return result;
}
这个方法会出现两条警告,因为使用的是原生态类型。为了修正这些警告,使方法变成类型安全的,我们这里就可以用到泛型:
public static <E> Set<E> union(Set<E> s1, Set<E> s2) {
Set<E> result = new HashSet<E>(s1);
result.addAll(s2);
return result;
}
至少对于简单的泛型方法而言,就是这么回事了。现在改方法编译时不会产生任何警告,并提供了类型安全性,也更容易使用。以下是一个执行该方法的简单程序。程序不包含装换,编译时不会有错误或者警告:
public static void main(String[] args){
Set<String> guys =new HashSet<String>{
Array.asList("Tom","Dick","Harry"));
Set<String> stooges =new
HashSet<String>{
Array.asList("Larry","Moe","Cur