需要关于此通用打字的简明描述

时间:2013-11-03 23:52:46

标签: java generics methods polymorphism typing

我正在攻读Java课程,我的文档将此方法标题作为通用示例。不幸的是,缺乏描述。有人可以通过这种打字来解释发生了什么吗?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

据我所知,

<T extends Object & Comparable <? super T>>

等同于:

<T extends Comparable<? super T>>

所以,这说:

  

T,应与T或与T抽象的内容相媲美。

如果MyClass声明为以下其中之一,则此结构会强制您选择类似MyClass的T:

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