泛型方法和受限类型参数
#泛型方法和受限类型参数
受限类型参数是实现泛型方法的关键所在。下面的方法是统计T数组中超过elem的元素个数。1234567public static <T> int countGreaterThan(T[] anArray, T elem) { int count = 0; for (T e : anArray) if (e > elem) // compiler error ++count; return count;}
这个方法的实现是很简单的,但是我们会得到一个编译错误,因为>符号只能用在基本类型上。为了修正这个错误,使用一个受限于Comparable123public interface Comparable<T> { public int compareTo(T o);}
最终的代码会如下所示:1234567public 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;}