这个接口声明在java中意味着什么?

时间:2012-08-21 08:30:37

标签: java generics interface

这可能是一个noob问题,但我正在学习java,我遇到了一个界面,其定义如下:

public interface MyClass <T extends Comparable<T>>

有人可以解释一下这是什么意思吗?我的意思是创建了什么样的界面。

3 个答案:

答案 0 :(得分:4)

这意味着泛型类型参数必须实现Comparable接口。

指定<T extends Comparable<T>>时,您可以使用例如类型为T的此接口中的Collections.sort。如果没有extends,则无法保证T具有可比性。

数字和字符串是例如可比较并实施Comparable界面。

答案 1 :(得分:1)

接口采用T类型Comparable与其他T

接口与其通用类型受约束的情况大致相同。

答案 2 :(得分:0)

这意味着T必须在同一个对象上实现Comparable。

例如

public interface MyClass <T extends Comparable<T>>

然后你可以按照以下方式使用

public class MyImpl implements MyClass<String>

它是有效的,因为String实现了Comparable。但是下面的句子无效,因为MyNewImpl没有实现Comparable。

public class MyNewImpl {}    
public class MyImplTwo implements MyClass<MyNewImpl>

此致 伊格纳西奥