次のコードがあります
public static <T extends Comparable<T>> T max(List<T> list){
Iterator<T> iter = list.iterator();
...
// code for finding the max element in the list
...
}
私の質問は、この場合、再帰型バインドの必要性は何ですか? 私の理解でT extends Comparable < T >
は、それ自体T
とのみ比較できるということT
です。これは、という事実から来ていますClass 'T' implements Comparable<T>
。
class MyClass implements Comparable<MyClass>{
}
ここで間違っている場合は、お気軽に修正してください。
では、実際に疑念を抱くようになると、なぜ指定する必要があるの< T extends Comparable < T > >
でしょうか? 引数List<T>
リストに同じタイプの要素が含まれる方法。つまり、 type のパラメーターを渡すとList < MyClass2 >
、すべての要素が同じ型になりMyClass2
ます。
では、再帰型バインドの意味は何ですか? 前もって感謝します。