1

我试图理解这段代码。它来自Oracle 泛型页面

我在这里看到两种返回类型<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;
}
4

2 回答 2

3

不,返回类型是int

T extends Comparable<T>类型参数,在参数中使用。

于 2013-01-31T03:26:32.153 回答
1

该方法只有一种返回类型:int。

<T extends Comparable<T>>只是声明T的类型。

如果你做这样的事情:

public static int calculate(T param) {
  ....
}

由于 T 未定义,您将遇到编译错误。T 是泛型类型,因此您需要指定它:

public static <T> int calculate(T param) {
  ....
}
于 2013-01-31T03:29:17.307 回答