Ich mache ein Java-Projekt und ich habe dieses Problem und weiß nicht, wie ich es beheben kann.
Die Klassen in meinem Projekt (vereinfacht):
%Vor% Dann versuche ich ein ArrayList
des Stocks zu sortieren, also erstelle ich eine andere Klasse namens CompareByValue
}
Wenn ich versuche, das Programm auszuführen, gibt es den Fehler:
Ausnahme im Thread "main" java.lang.ClassCastException: Stock kann nicht in java.lang.Comparable
umgewandelt werden
Wer weiß, was los ist?
Dies liegt daran, dass Stock
nicht Comparable
implementiert. Entweder implementieren Sie es:
... Oder übergeben Sie eine Instanz von CompareByValue
als Parameter an die sort()
Methode:
nur von oben Code, es sieht gut aus. Bist du sicher die Ausnahme vom obigen Code? Wenn Sie das Stock-Objekt in eine sortierte Sammlung einfügen, sehen Sie eine solche Ausnahme und müssen eine vergleichbare Schnittstelle implementieren.
Aber für den Fall, dass Sie einfach Ihren benutzerdefinierten Vergleicher übergeben, müssen Sie die Aktie nicht zu einem Vergleichswert machen. Es ist der gleiche Fall, wie Sie anonyme Comparator-Implementierung geben.
Setzen Sie Ihren Vergleicher auf sortierte Sammlung wie TreeSet und fügen Sie dann das Stock-Objekt in sortierte Sammlung, sollte es funktionieren, ohne vergleichbare Schnittstelle implementieren.
Tags und Links java exception classcastexception sorting comparable