Я использую интерфейс Comparable для реализации двух разных классов. Для каждого класса я реализую методы и определение CompareTo.
Для класса GPA, как только я объявляю метод для вычисления средних значений, я получаю ошибку, "ожидаемый идентификатор" для среднего значения метода. Код для GPA:
public static class GPA implements Comparable<GPA>
{
String letter;
double grade;
public GPA(String letter,double grade)
{
this.letter = letter;
this.grade = grade;
}
@Override public int compareTo(GPA that)
{
if(this.grade-that.grade>0) return +1;
if(this.grade-that.grade>0) return -1;
return 0;
}
public static double mean(GPA[] class)
{
double size = class.length+1;
double total = 0;
for(GPA gpa : class)
{
total+=class.length;
}
return total/size;
}
}
При попытке использовать ту же концепцию в классе Data, он работал отлично.
public static class Data implements Comparable<Data>
{
String date; // data members
int amount;
public Data(String date, String amount) // constructor
{
this.date=date;
this.amount=Integer.parseInt(amount);
}
@Override public int compareTo(Data that) // overrides the compareTo function to compare each objects amounts
{
if(this.amount-that.amount>0) return +1;
if(this.amount-that.amount<0) return -1;
return 0;
}
public static void print(Data[] data) // prints data
{
int count = 0;
for (Data d : data)
{
System.out.print(d.date + "\t|\t" + d.amount);
count++;
}
}
}
Мой вопрос: почему данные запускаются, а GPA возвращает компиляцию ошибка? Оба метода принимают массив своих собственных объектов. Спасибо всем, кто нашел время, чтобы помочь.