Bonjour à tous
Lorsque je compare l'objet à lui-même, j'obtiens bien 0 (Une vérification conseillée par le correcteur). Et pourtant l'implémentation que j'ai faite de compareTo() fonctionne apparemment. Je ne vois plus ce qui ne va pas.
package fr.codegym.task.task17.task1714;
/*
Comparable
*/
import java.util.ArrayList;
public class Beach implements Comparable<Beach> {
private String name;
private float distance;
private int quality;
private static Beach plage1;
private static Beach plage2;
private int index;
private static ArrayList<Beach> plages = new ArrayList<>();
static {
plage1 = new Beach("Antibes", 5f, 14);
plages.add(plage1);
plage2 = new Beach("Juan-les-Pins", 0.1f, 16);
plages.add(plage2);
}
public Beach(String name, float distance, int quality) {
this.name = name;
this.distance = distance;
this.quality = quality;
}
public synchronized String getName() {
return name;
}
public synchronized void setName(String name) {
this.name = name;
}
public synchronized float getDistance() {
return distance;
}
public synchronized void setDistance(float distance) {
this.distance = distance;
}
public synchronized int getQuality() {
return quality;
}
public synchronized void setQuality(int quality) {
this.quality = quality;
}
public static void main(String[] args) {
System.out.println(plages.get(0).compareTo(plages.get(1)));
System.out.println(plages.get(0).compareTo(plages.get(0)));
}
@Override
public synchronized int compareTo(Beach o) {
return (plages.get(index).getQuality() - o.getQuality()) - ((int) plages.get(index).getDistance() - (int) o.getDistance());
}
}