为什么我不能在 SimpleEntry 子 class 中调用 Long 对象的方法?
Why can't I call methods of Long objects inside a SimpleEntry child class?
public class PriorityQueueEntry<TimedTask, Long> extends AbstractMap.SimpleEntry<TimedTask, Long> implements Comparable<PriorityQueueEntry<TimedTask, Long>> {
public PriorityQueueEntry(TimedTask key, Long value) {
super(key, value);
}
@Override
public int compareTo(PriorityQueueEntry<TimedTask, Long> o) {
((Long)getValue()).compareTo((Long)o.getValue());
}
}
NetBeans 告诉我它找不到 compareTo 方法。为什么我不能这样做?
有
public class PriorityQueueEntry<TimedTask, Long> ...
您将使用名为 TimedTask
和 Long
的两个通用参数定义 class。这些不是您知道的实际 classes,而是通用参数,碰巧 与 classes TimedTask
同名,并且Long
。根据您的需要,您可能希望删除这些通用参数或将它们重命名为常见名称,例如 E
、K
或 V
.
public class PriorityQueueEntry<TimedTask, Long> extends AbstractMap.SimpleEntry<TimedTask, Long> implements Comparable<PriorityQueueEntry<TimedTask, Long>> {
public PriorityQueueEntry(TimedTask key, Long value) {
super(key, value);
}
@Override
public int compareTo(PriorityQueueEntry<TimedTask, Long> o) {
((Long)getValue()).compareTo((Long)o.getValue());
}
}
NetBeans 告诉我它找不到 compareTo 方法。为什么我不能这样做?
有
public class PriorityQueueEntry<TimedTask, Long> ...
您将使用名为 TimedTask
和 Long
的两个通用参数定义 class。这些不是您知道的实际 classes,而是通用参数,碰巧 与 classes TimedTask
同名,并且Long
。根据您的需要,您可能希望删除这些通用参数或将它们重命名为常见名称,例如 E
、K
或 V
.