2016-04-24 69 views
0

我有如圖的簽名實現可比類:可比實施工作不

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?

+0

https://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicitly-p – assylias

+0

哦,謝謝!我想我推測他們不是多態的! – MegaZeroX

+0

應該是'實現可比>' –

回答

0

Assylias回答了這個對我張貼的鏈接,但是泛型不是多態的,因此,這就是爲什麼它不工作。我正在改變我的班級到特定的版本來解決這個問題。謝謝assylias!