Kam*_*ami 1 java generics wildcard super comparable
我读到使用带有这样的超级通配符:
public class MyClass <T extends Comparable<? super T>> {
...
}
Run Code Online (Sandbox Code Playgroud)
代替:
public class MyClass <T extends Comparable<T>> {
...
}
Run Code Online (Sandbox Code Playgroud)
可以让这个班级"更通用",但我不明白为什么.
有人能提供一些具体的例子吗?
这样你可以为T提供一个类,它本身不实现Comparable,但是继承自实现Comparable的类.
例如
class Baseclass implements Comparable<Baseclass> {
...
}
class Inherited extends Baseclass {
...
}
Run Code Online (Sandbox Code Playgroud)
有一个规范
public class MyClass <T extends Comparable<? super T>> {
...
}
Run Code Online (Sandbox Code Playgroud)
您可以使用MyClass<Inherited>
,而且MyClass<Baseclass>
,而是用
public class MyClass <T extends Comparable<T>> {
...
}
Run Code Online (Sandbox Code Playgroud)
你只能使用 MyClass<Baseclass>
归档时间: |
|
查看次数: |
244 次 |
最近记录: |