Arbeiten Ich habe eine Klasse, die vergleichbare implementiert, wie in seiner Signatur gezeigt:Vergleichbare Implementierung nicht
public class PairNode<FirstType, SecondType> implements Comparable
Diese Klasse kompiliert fein und hat eine richtige Methode compareTo.
In einer anderen Klasse, dauert es Konstruktor eine Arraylist von vergleichbarem Objekt in seinem Konstruktor, wie hier gezeigt:
public HeapMinPriorityQueue(ArrayList<Comparable> list)
Wenn jedoch später, als ich eine Arraylist von PairNodes habe, und ich versuche zu verwenden, der Konstruktor wie folgt aus:
HeapMinPriorityQueue pq = new HeapMinPriorityQueue(list);
Java sagt mir, dass sie inkompatible Typen, als Arraylist von PairNodes der Zeichen und Ganze Zahlen sind nicht auf eine Arraylist von Vergleichsdaten umgewandelt werden. Aber sollten sie nicht gleichwertig sein, da mein PairNode Comparable implementiert?
https://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-java-generics-implicitly-p – assylias
Oh, danke! Ich nehme an, ich vermutete, dass sie polymorph waren, wenn sie es nicht waren! – MegaZeroX
Sollte sein 'implementiert Vergleichbar>' –