gpt4 book ai didi

java - 泛型和 Java8 Streams 的未经检查的调用错误

转载 作者:行者123 更新时间:2023-11-30 07:55:44 24 4
gpt4 key购买 nike

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

代码是

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

IDE 给我一个警告和一个错误:

  • 警告
    Unchecked call to 'PriorityQueue(Comparator<? super E>)' as a member of raw type 'java.util.PriorityQueue'

  • 错误 引用 QueueItem::getDeadline
    Non-static method cannot be referenced from a static context

我是 Java 的新手,虽然代码可以运行,但我想知道我是否可以用更好的方式编写它,或者是否有合适的方法。

谢谢

编辑

QueueItem 的代码

class QueueItem<T extends Comparable>{
private final T deadline;

QueueItem(T deadline) {
this.deadline = deadline;
}


T getDeadline() {
return deadline;
}
}

最佳答案

不应该是 QueueItem看起来有点不同(TaskQueue 也一样):

 QueueItem<T extends Comparable<T>>

注意 T extends Comparable<T>

Comparable 是一个通用类型,但在您的代码中您没有指定 Comparable 的类型;相反,它是生的。

关于java - 泛型和 Java8 Streams 的未经检查的调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42957519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com