Parameterübergabe bei Comparato.comparing

ManuJo

Mitglied
Hallo Leute,

ich habe eine Frage zu Comparator.comparing.
Bei meinem Programm muss ich einen Befehl ausführen welcher eine Methode aktiviert, um Bücher nach dem Erscheinungsjahr zu sortieren.

database.nameOfMethod(Comparator.comparing(Buch::getField(parameter1)));

Buch ist ein Objekt. Dieses Objekt muss benutzt werden, um auf die Objektmethode getField zuzugreifen. Gleichzeitig muss man dieser Methode einen Parameter übergeben, um die Jahreszahlen zu bekommen. Leider darf ich an dem Aufbau des Projekts nichts ändern.

Wisst ihr, wie ich diesen Befehl schreiben soll, damit nameOfMethod mit dem Comparator die Bücher nach Jahreszahlen sortiert?
 
Beste Antwort
In dem Fall kannst du das nicht als einfache Method Reference abbilden, sondern kannst ja einfach einen Lambda Ausdruck nehmen:
Java:
comparing(buch -> buch.getField(parameter1))
Du könntest natürlich auch eine neue statische Methode bauen, und die dann als Method Reference nutzen:
Java:
public static String getJahreszahl(Buch buch) {
    return buch.getField("jahreszahl");
}

// Aufruf:
comparing(Buch::getJahreszahl)

httpdigest

Top Contributor
In dem Fall kannst du das nicht als einfache Method Reference abbilden, sondern kannst ja einfach einen Lambda Ausdruck nehmen:
Java:
comparing(buch -> buch.getField(parameter1))
Du könntest natürlich auch eine neue statische Methode bauen, und die dann als Method Reference nutzen:
Java:
public static String getJahreszahl(Buch buch) {
    return buch.getField("jahreszahl");
}

// Aufruf:
comparing(Buch::getJahreszahl)
 
Beste Antwort

Ähnliche Java Themen

Neue Themen


Oben