Komparator<String> überschreiben muss super Klasse Methode
Mache ich ein TreeMap<String, String>
und wollen, um es in absteigender Weise. Ich habe die folgenden Komparator:
Comparator<String> descender = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
};
Baue ich die TreeMap etwa so:
myMap = new TreeMap<String, String>(descender);
Allerdings bin ich mir immer die folgende Fehlermeldung:
The method compare(String, String) of type new Comparator<String>(){} must override a superclass method
Habe ich noch nie voll groked Generika, was mache ich falsch?
Soweit ich das sehen kann, nichts. Der Fehler würde auftreten, wenn der compare-Methode nicht mit der Signatur der Komparator compare () - Methode, aber das scheint nicht der Fall zu sein, soweit ich das sehen kann.
InformationsquelleAutor Kenny Wyland | 2011-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrem Eclipse-Projekt ist offenbar eingestellt, um die Java 1.5. Die
@Override
annotation ist dann in der Tat nicht unterstützt, auf die interface-Methoden. Entweder entfernen Sie die Beschriftung oder Update für Ihr Projekt die Konformität zu Java 1.6.Und hier ist ein link zeigt Ihnen, wie Sie zurücksetzen Projekt jre-version stackoverflow.com/questions/20145797/...
InformationsquelleAutor BalusC
Brauchen Sie nicht, schreiben Sie eine benutzerdefinierte
Comparator
wenn Sie wollen einfach nur eine Umkehrung der natürlichen (aufsteigend) bestellen.Um eine absteigende Sortierung verwenden Sie einfach:
InformationsquelleAutor Philipp Reichart
Ah, ich habe das problem gefunden. Beim instanziieren eines neuen anonymen Instanz eines Vergleichbaren, ich bin nicht überschreiben der Schnittstellen-Methoden... ich bin, Sie umzusetzen. Die @Override-Richtlinie war das problem. Die compare () - Methode nicht überschreiben einer bereits vorhandenen Methode dar, es war Teil der Umsetzung der Schnittstelle. Ich kopierte code aus einem anderen Ort, und es sollte nicht gehabt haben, das @Override.
@Override
auch.InformationsquelleAutor Kenny Wyland