2 Stimmen

Vergleichsfunktion nicht gefunden

Ich muss eine Sammlung bestellen und verwende einen Comparator

import java.util.*;

public class OpereComparatorAuthor implements Comparator{

    public int compare(Opera left,Opera right){     
        return left.getArtist().compareTo(right.getArtist());
    }
} 

aber wenn ich es aus einer anderen Klasse aufrufe:

Collections.sort(ordbyauthor,OpereComparatorAuthor);

erhalte ich diesen Fehler:

kann das Symbol nicht finden
Symbol  : Variable OpereComparatorAuthor
Ort: Klasse Museo
    Collections.sort(ordbyauthor,OpereComparatorAuthor);

Warum?

4voto

Bhesh Gurung Punkte 49812

Sie müssen ein Objekt des Comparators übergeben:

Collections.sort(ordbyauthor, new OpereComparatorAuthor());

Aktualisierung:

Dies ist nur ein Vorschlag. Verwenden Sie anstelle des Definierens einer Klasse eine anonyme Klasse (die meiner Meinung nach eine gute Wahl ist) für diese Art von Situation.

z.B.

//Ich verwende hier Sala anstelle von Opera gemäß Ihrem Kommentar
Collections.sort(ordbyauthor, new Comparator(){
    @Override
    public int compare(Sala left, Sala right) {
        //führen Sie hier Ihren Vergleich entsprechend Ihren Anforderungen durch
        //dann geben Sie das Ergebnis zurück
    }
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X