类似的实施不起作用
Comparable Implementation not Working
我有一个 class 实现了其签名中所示的可比性:
public class PairNode<FirstType, SecondType> implements Comparable
这个 class 编译得很好,并且有一个正确的 compareTo 方法。
在另一个 class 中,它的构造函数在其构造函数中采用可比较对象的 ArrayList,如下所示:
public HeapMinPriorityQueue(ArrayList<Comparable> list)
但是,稍后,当我有一个 PairNodes 的 ArrayList 时,我尝试使用这样的构造函数:
HeapMinPriorityQueue pq = new HeapMinPriorityQueue(list);
Java 告诉我它们是不兼容的类型,因为字符和整数的 PairNodes 的 ArrayList 不能转换为 Comparables 的 ArrayList。但是它们不应该是等价的吗,因为我的 PairNode 实现了 Comparable?
Assylias 通过发布 link 为我回答了这个问题,但是通用类型不是多态的,因此这就是它不起作用的原因。我正在将 class 更改为特定版本以解决此问题。谢谢亚述!
我有一个 class 实现了其签名中所示的可比性:
public class PairNode<FirstType, SecondType> implements Comparable
这个 class 编译得很好,并且有一个正确的 compareTo 方法。
在另一个 class 中,它的构造函数在其构造函数中采用可比较对象的 ArrayList,如下所示:
public HeapMinPriorityQueue(ArrayList<Comparable> list)
但是,稍后,当我有一个 PairNodes 的 ArrayList 时,我尝试使用这样的构造函数:
HeapMinPriorityQueue pq = new HeapMinPriorityQueue(list);
Java 告诉我它们是不兼容的类型,因为字符和整数的 PairNodes 的 ArrayList 不能转换为 Comparables 的 ArrayList。但是它们不应该是等价的吗,因为我的 PairNode 实现了 Comparable?
Assylias 通过发布 link 为我回答了这个问题,但是通用类型不是多态的,因此这就是它不起作用的原因。我正在将 class 更改为特定版本以解决此问题。谢谢亚述!