泛型方法和受限类型参数

Author Avatar
贾康 11月 11, 2016

#泛型方法和受限类型参数
受限类型参数是实现泛型方法的关键所在。下面的方法是统计T数组中超过elem的元素个数。

1
2
3
4
5
6
7
public static <T> int countGreaterThan(T[] anArray, T elem) {
int count = 0;
for (T e : anArray)
if (e > elem) // compiler error
++count;
return count;
}

这个方法的实现是很简单的,但是我们会得到一个编译错误,因为>符号只能用在基本类型上。为了修正这个错误,使用一个受限于Comparable接口的类型参数。

1
2
3
public interface Comparable<T> {
public int compareTo(T o);
}

最终的代码会如下所示:

1
2
3
4
5
6
7
public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) {
int count = 0;
for (T e : anArray)
if (e.compareTo(elem) > 0)
++count;
return count;
}

下一页