Вроде как ничего сложного, вывод тоже по моему соответсвует условию, но валидатор ругается что "Проверь что для разных объектов возвращает разные значения"... Где я ошибся?
package com.javarush.task.task17.task1714;
/*
Comparable
Реализуйте интерфейс Comparable<Beach> в классе Beach. Пляжи(Beach) будут использоваться нитями,
поэтому позаботьтесь, чтобы все методы были синхронизированы.
Реализовать метод compareTo так, чтобы он при сравнении двух пляжей выдавал число,
которое показывает что первый пляж лучше (положительное число)
или второй пляж лучше (отрицательное число), и насколько он лучше.
*/
public class Beach implements Comparable<Beach> {
private String name; //название
private float distance; //расстояние
private int quality; //качество
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) {
/*
Beach beach = new Beach("1", 10, 15);
Beach beach1 = new Beach("2", 15, 10);
System.out.println(beach.compareTo(beach1));
*/
}
@Override
public synchronized int compareTo(Beach o) {
int qualityCount = 0;
if (quality > o.quality) {
qualityCount++;
} else qualityCount--;
if (distance> o.distance) {
qualityCount++;
} else qualityCount--;
if (distance == o.distance && quality==o.quality)
qualityCount = 0;
return qualityCount;
}
}