这可能是一个noob问题,但我正在学习java,我遇到了一个界面,其定义如下:
public interface MyClass <T extends Comparable<T>>
有人可以解释一下这是什么意思吗?我的意思是创建了什么样的界面。
答案 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>
此致 伊格纳西奥