compareTo - Vergleich von Objekten

gta008

Mitglied
Guten Tag,

ich habe ein Problem mit dem Vergleichen von Objekten. Ich habe in meinem Programm ein Array des Typs Object. In einer Methode muss ich zwei Elemente aus dem Array vergleichen, leider kommt aber hier immer die Fehlermeldung, dass compareTo(Object) undefined ist. Was mache ich hier falsch?

Java:
public class HeapPriorityQueue <T extends Comparable <T>> {

Code:
 Object [] array = new Object[4];

Java:
        if (l < counter && array[l].compareTo(array[smallest]) < 0) { //comapreTo funktioniert hier nicht
            smallest = l;
        }

        if (r < counter && array[r].compareTo(array[smallest]) < 0) { ////comapreTo funktioniert hier nicht
            smallest = r;
        }

Vielen Dank im Voraus!
 

KonradN

Super-Moderator
Mitarbeiter
Wenn Du ein Array von Object hast, dann hast Du kein compareTo.

compareTo ist in Comparable definiert, daher ist das beim Generic ja auch so vorgegeben.

Das kannst Du im Array auch vorgeben - Statt Object kannst Du Comparable nehmen und schon hast Du auch compareTo.
 

gta008

Mitglied
Wenn Du ein Array von Object hast, dann hast Du kein compareTo.

compareTo ist in Comparable definiert, daher ist das beim Generic ja auch so vorgegeben.

Das kannst Du im Array auch vorgeben - Statt Object kannst Du Comparable nehmen und schon hast Du auch compareTo.
Wie kann ich denn das Array als Comparable machen? Das habe ich versucht aber leider nicht hinbekommen.
 

KonradN

Super-Moderator
Mitarbeiter
Object durch Comparable ersetzen:
Comparable array = new Comparable[4];

Wenn es wirklich notwendig ist, ein Generic (T) Array zu haben, dann gäbe es da auch Möglichkeiten wie z.B
aufzeigt.

Aber hier wäre erst einmal die Frage, was Du da gerade genau machen willst. Wir kennen nur kleine Ausschnitte und wissen nicht, ob das nicht ggf. einfach etwas ist, was Du gar nicht brauchst.
 

Neue Themen


Oben