我读过这样的超级通配符:
public class MyClass <T extends Comparable<? super T>> {
...
}
而不是:
public class MyClass <T extends Comparable<T>> {
...
}
可以使这个类“更通用”,但我不明白为什么。
有人可以提供一些具体的例子吗?
答案 0 :(得分:5)
这样你就可以为T提供一个类,它本身不实现Comparable,但是继承自实现Comparable的类。
E.g。
class Baseclass implements Comparable<Baseclass> {
...
}
class Inherited extends Baseclass {
...
}
使用类似
的规范public class MyClass <T extends Comparable<? super T>> {
...
}
您可以使用MyClass<Inherited>
和MyClass<Baseclass>
,但可以使用
public class MyClass <T extends Comparable<T>> {
...
}
您只能使用MyClass<Baseclass>