作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 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/
我是一名优秀的程序员,十分优秀!