泛型和Java8流的未检查调用错误

泛型和Java8流的未检查调用错误,java,generics,java-8,Java,Generics,Java 8,我的IDE发出了一个奇怪的警告,但代码仍然运行良好 代码是 class TaskQueue<T extends Comparable> { private final PriorityQueue<QueueItem<T>> queue = new PriorityQueue<>(Comparator.comparing(QueueItem::getDeadline)); } 方法QueueItem::getDai

我的IDE发出了一个奇怪的警告,但代码仍然运行良好

代码是

class TaskQueue<T extends Comparable> {
    private final PriorityQueue<QueueItem<T>> queue = 
            new PriorityQueue<>(Comparator.comparing(QueueItem::getDeadline));
}

方法
QueueItem::getDaildate
返回某种类型的对象,该对象未实现
Comparable

因此,解决方案将是:

class Deadline implements Comparable<Deadline> {

    @Override
    public int compareTo(Deadline o) {
        return 0 /* Some comparing logic here */;
    }

}
课程截止日期{
@凌驾
公共国际比较(截止日期o){
这里返回0/*一些比较逻辑*/;
}
}

比较器。comparing
期望返回
compariable
对象。

队列项目
看起来不应该有点不同(TaskQueue也是如此):

QueueItem
请注意,
T扩展了可比较的


Comparable是一种泛型类型,但在代码中未指定该
Comparable
的类型;相反,它是生的

你能发布
QueueItem
类的代码吗?我最好的猜测是getDeadline不是一个静态方法。将其更改为静态或使用instanceThat's!我从来没有想过这个功能。。。。但我不得不修改它以适应`
class Deadline implements Comparable<Deadline> {

    @Override
    public int compareTo(Deadline o) {
        return 0 /* Some comparing logic here */;
    }

}
 QueueItem<T extends Comparable<T>>