1

このコードを理解しようとしています。Oracle Generics Pageからのものです。

ここ<T extends Comparable<T>>との 2 つの戻り値の型が表示されますint。私はこれを正しく読んでいますか?もしそうなら、メソッドはどのようにして2つの戻り値の型を持つことができますか?

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>type parameterであり、パラメーターで使用されます。

于 2013-01-31T03:26:32.153 に答える
1

このメソッドには、int という 1 つの戻り値の型しかありません。

<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 に答える