Приветствую. Прошу помощи. Валидатор не принимает решение по условию:
Метод compareTo класса Beach как минимум должен учитывать качество пляжа и дистанцию.
Убедись, что для разных объектов возвращаются действительно разные значения compareTo.
Значение для разных объектов возвращаются разные, для одинаковых 0. Не могу понять почему не принимается решение.
Спасибо за ответ!
package com.javarush.task.task17.task1714;
/*
Comparable
*/
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 alpha = new Beach("Alpha",2,4);
Beach omega = new Beach("Omega", 6, 1);
System.out.println(alpha.compareTo(omega));
System.out.println(omega.compareTo(alpha));*/
}
@Override
public synchronized int compareTo(Beach o) {
int stateOfComparisonThis = 0;
int stateOfComparisonO =0;
stateOfComparisonThis = (int) (this.getDistance()+this.getQuality());
stateOfComparisonO = (int) (o.getDistance() + o.getQuality());
int result = stateOfComparisonThis -stateOfComparisonO;
return result;
}
}
/*
Comparable
Реализуйте интерфейс Comparable<Beach> в классе Beach. Пляжи(Beach) будут использоваться нитями, поэтому позаботьтесь, чтобы все методы были синхронизированы.
Реализовать метод compareTo так, чтобы он при сравнении двух пляжей выдавал число, которое показывает что первый пляж лучше (положительное число)
или второй пляж лучше (отрицательное число), и насколько он лучше.
Требования:
1. Класс Beach должен содержать три поля: String name, float distance, int quality.
2. Класс Beach должен реализовывать интерфейс Comparable<Beach>.
3. Метод compareTo класса Beach как минимум должен учитывать качество пляжа и дистанцию.
4. Все методы класса Beach, кроме метода main, должны быть синхронизированы.
*/