1
我正在学习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像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
。
我认为泛型类型参数'T'应该扩展'Comparable'。 'a'和'b'属于'T'类型。只有两个参数可以相互比较才能达到最大值才有意义。 – Vertex