Java泛型澄清代码片段

时间:2013-01-31 03:25:00

标签: java generics

我想了解这段代码。它来自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;
}

2 个答案:

答案 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) {
  ....
}