public class Student implements Comparable
{
private String name;
private int id;
private double gpa;
// This is complete
public Student(String name, int id, double gpa){
this.name=name;
this.id=id;
this.gpa = gpa;
}
// The 3 accessors are complete
public String getName() { return name; }
public int getId() { return id; }
public double getGpa() { return gpa; }
// This method is complete
public String toString(){
String s = new String("");
DecimalFormat fmt = new DecimalFormat("0.00");
s = "gpa:" + fmt.format(getGpa()) + " name:" + getName() + " id:" + getId();
return s;
}
// Write so that the students come out in ascending(non-descending) order
// of GPAs. If the GPAs are equal, then the secondary sort criterion should
// be based on descending(non-ascending) order of the names.
// Reminder: use the Double class to help determine "equality" for double primitives
// due to the imprecise nature of real numbers
public int compareTo(Object otherObj){
Double g = new Double(gpa);
int gpa1 = g.compareTo(otherObj.getGpa());
return gpa1;
int names = getName().compareTo(otherObj.getName());
return names;
}
Когда я компилирую это, он возвращает сообщение об ошибке невозможности найти getGpa () и getName (). Кроме того, это как вы превращаете двойной примитив в двойной объект? Я мог бы полностью испортить алгоритм сравнения. Какими будут шаги для кодирования для сравнения?