2013-11-03 73 views
1

我正在学习Java课程,我的文档将此方法标题作为通用示例。不幸的是,这个描述是缺乏的。有人可以解释这种打字方式是怎么回事?需要关于此通用键入的简要说明

public static <T extends Object & Comparable <? super T>> T max(T a, T b) { 
... 
... 
... 
} 

谢谢!

+0

我认为泛型类型参数'T'应该扩展'Comparable'。 'a'和'b'属于'T'类型。只有两个参数可以相互比较才能达到最大值才有意义。 – Vertex

回答

1

据我所知,

<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