Hallo ihr Lieben!
Ich habe eine kleine Verständnisfrage zum Comparator. Angenommen ich habe eine Klasse mit einer privaten Instanzvariable:
Wenn ich nun eine Comparator-Klasse schreibe, kann ich auf diese Instanzvariable nicht mehr zugreifen:
Wie löse ich dieses Problem? Die Variable population sollte private bleiben und auch nicht über einen öffentlichen Getter erreichbar sein.
Meine Idee war, WorldComparator könnte eine innere Klasse von World sein, dann wäre das Sichtbarkeitsproblem gelöst:
Aber dann muss ich den Comparator so umständlich erstellen:
Da gibt es bestimmt eine bessere Lösung, oder? :reflect:
Ich habe eine kleine Verständnisfrage zum Comparator. Angenommen ich habe eine Klasse mit einer privaten Instanzvariable:
Java:
class World {
private int population;
}
Wenn ich nun eine Comparator-Klasse schreibe, kann ich auf diese Instanzvariable nicht mehr zugreifen:
Java:
class WorldComparator implements Comparator<World> {
public int compare(World o1, World o2) {
return o1.population - o2.population;
}
}
Wie löse ich dieses Problem? Die Variable population sollte private bleiben und auch nicht über einen öffentlichen Getter erreichbar sein.
Meine Idee war, WorldComparator könnte eine innere Klasse von World sein, dann wäre das Sichtbarkeitsproblem gelöst:
Java:
class World {
private int population;
class WorldComparator implements Comparator<World> {
public int compare(World o1, World o2) {
return o1.population - o2.population;
}
}
}
Aber dann muss ich den Comparator so umständlich erstellen:
Java:
Collections.sort(worlds, new World().new WorldComparator());
Da gibt es bestimmt eine bessere Lösung, oder? :reflect: