Java:无法实现有界泛型接口

时间:2016-08-04 00:11:29

标签: java generics comparable bounded-wildcard

我搜索了很多问题和其他互联网文章,但我似乎无法找到适合我的具体情况的那个,而其他任何解决方案都没有为我工作。

我在这里有这个界面:

public interface PriorityQueueInterface<T extends Comparable<? super T>>

我需要创建一个优先级队列类来实现这个接口,所以我输入如下:

public class ArrayPriorityQueue<T> implements PriorityQueueInterface<Comparable<? super T>>

但是,由于我收到此错误,因此无法编译:

  

type参数Comparable不在范围内   类型变量T#2其中T#1,T#2是类型变量:T#1扩展了Object   在类ArrayPriorityQueue中声明T#2扩展在接口PriorityQueueInterface中声明的Comparable

我尝试了所有类型的组合,但似乎没有任何效果。如何编写类声明以便编译?

1 个答案:

答案 0 :(得分:1)

看起来你想要的是用相同的边界声明类型变量,然后将其作为参数传递给接口:

public class ArrayPriorityQueue<T extends Comparable<? super T>>
    implements PriorityQueueInterface<T> {...}