我想了解这段代码。它来自Oracle Generics Page。
我在这里看到两种返回类型<T extends Comparable<T>>
和int
。我看对了吗?如果是这样,方法如何有两种返回类型?
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;
}
答案 0 :(得分:3)
不,返回类型为int
T extends Comparable<T>
是类型参数,并在参数中使用。
答案 1 :(得分:1)
该方法只有一种返回类型:int。
<T extends Comparable<T>>
只是声明T的类型。
如果您这样做:
public static int calculate(T param) {
....
}
由于T未定义,您将遇到编译错误。 T是泛型类型,因此您需要指定它:
public static <T> int calculate(T param) {
....
}