Collections.sort(ag.state_list,new Comparator<State>(){ public int compare(State sta1, State sta2) { return sta1.score.compareTo(sta2.score);} });
上面一行的代码本以是对ag.state_list(state_list是List,存储的对象State)进行排序,排序的标准是State的属性score(定义为double)。可是sta1.score.compareTo(sta2.score);的下面就会出现红色波浪线,显示错误:cannot invoke compareTo(double) on the primitive type double
解决的方法是: compareTo只适合实现了Comparable的对象类型,
第一种修改方法:
Collections.sort(ag.state_list,new Comparator<State>(){ public int compare(State sta1, State sta2) { return new Double(sta1.score).compareTo(new Double(sta2.score));}});
第二种解决方法是:double score;//对score的定义
修改为:Double score; //score改为double的包装类Double类型