次のコードがあります
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ます。
では、再帰型バインドの意味は何ですか? 前もって感謝します。