Beispiel eines ADT (verwirrt mich)

Razorhawk

Webdesigner und MSP
Ich habe hier eine Klasse:
Code:
class InterfaceDemo{
public static void main(String args[]){
java.util.Arrays.sort(args, new InverseComparator());
for (int i = 0; i < args.length; i++)
System.out.println(args[i]);
}
}

Diese soll die argumente umdrehen und dazu gibt es noch eine Funktion InverseComparator()
Die ich nicht ganz verstehe, da sie ziemlich abstrakt ist.
Kann mir das einer erklären wie man mit obj1 und obj2 etwas umdrehen kann, wenn diese Funktion nichtmal aufgerufen wird.
in der Interfacedemo-class.

Code:
// Dieser InverseComparator funktioniert nur mit Strings
class InverseComparator implements java . util . Comparator {
   public int compare ( Object obj1 , Object obj2 ) {
     // Default Ergebnis einfach umkehren
     return -(( String ) obj1 ). compareTo ( obj2 );
   }
}


Vielleicht kann mir jemand die Klasse etwas genauer erklären.

Danke!
 
Hallo!

new InverseComparator() ist keine Funktion.Der Arrays.sort(...) -Methode wird eine Instanz eines InverseComparators uebergeben, welches das Comparator-Interface implementiert.
Innerhalb der sort(...) Methode der Arrays-Klasse wird die compare(...) -Methode des Comparators aufgerufen... einfach mal in den Quellcode schauen.

Gruss Tom
 
Zurück