有没有办法在Java中使用接口绑定泛型类型?

时间:2012-12-22 04:40:00

标签: java generics bounded-wildcard

我正在尝试创建一个通用列表,该列表使用该类型的.compareTo()方法对输入到其中的项目进行排序。但是,我在第一行遇到了问题。由于类型必须是implements Comparable<T>的类型,有没有办法强制执行此操作?我想语法是:

public class GenList<T implements Comparable<T>>{
//Class body.
}

不起作用。有什么建议?提前谢谢!

2 个答案:

答案 0 :(得分:3)

我知道这有点违反直觉,但为此你写extends而不是implements

public class GenList<T extends Comparable<T>>{
//Class body.
}

(请注意,我还将?更改为T,我认为这就是您的意思。引用可以包含GenList<?>类型,或类型GenList<? extends Comparable<String>>,或者诸如此类,但将类本身声明为采用通配符参数是没有意义的。)

答案 1 :(得分:0)

你的意思是

public class GenList<T extends Comparable<T>>{
//Class body.
}