我正在学习 Java 课程,我的文档将此方法标头作为通用示例。不幸的是,缺乏描述。有人可以解释一下这种打字是怎么回事吗?
public static <T extends Object & Comparable <? super T>> T max(T a, T b) {
...
...
...
}
谢谢!
我正在学习 Java 课程,我的文档将此方法标头作为通用示例。不幸的是,缺乏描述。有人可以解释一下这种打字是怎么回事吗?
public static <T extends Object & Comparable <? super T>> T max(T a, T b) {
...
...
...
}
谢谢!
据我所知,
<T extends Object & Comparable <? super T>>
相当于:
<T extends Comparable<? super T>>
所以,这说:
T
, 这应该与 比较T
或比T
.
这种结构迫使您选择 T like MyClass
,如果MyClass
声明为以下之一:
MyClass implements Comparable<MyClass>
MyClass implements Comparable<MySuperClass>
MyClass implements Comparable<Object>
但不允许:
MyClass implements Comparable<String>
MyClass implements Comparable<MyChildClass>
鉴于:MyChildClass extends MyClass extends MySuperClass extends Object
。