可比实施不起作用

时间:2016-04-24 17:49:59

标签: java comparable implements

我有一个实现可比性的类,如签名所示:

public class PairNode<FirstType, SecondType> implements Comparable

这个类编译得很好,并且有一个正确的compareTo方法。

在另一个类中,它的构造函数在其构造函数中采用了一个类似对象的ArrayList,如下所示:

public HeapMinPriorityQueue(ArrayList<Comparable> list)

但是,稍后,当我有一个PairNodes的ArrayList时,我尝试使用这样的构造函数:

HeapMinPriorityQueue pq = new HeapMinPriorityQueue(list);

Java告诉我它们是不兼容的类型,因为字符和整数的PairNodes的ArrayList不能转换为可比较的ArrayList。但是它们不应该是等价的,因为我的PairNode实现了Comparable吗?

1 个答案:

答案 0 :(得分:0)

Assylias通过发布链接为我回答了这个问题,但是通用类型不具有多态性,因此这就是它无法正常工作的原因。我正在将我的课程改为特定版本来解决这个问题。谢谢assylias!