我有以下一段代码
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
..
那么递归类型绑定的含义是什么?提前致谢。