java-比较器-无法取消引用int

因此,我在这里看到了一个示例,该示例如何使用Comparator接口对ArrayList进行排序,因此我进行了尝试.使用Strings可以很好地工作,但是我要排序的一个变量是Integer,它将无法编译,并说“不能取消引用int”.

我该怎么做才能使它起作用,并允许我按score变量对ArrayList进行排序?

这是我的代码:

public class ScoreComparator implements Comparator<Review> {

@Override
public int compare(Review o1, Review o2)
{
   return o1.getScore().compareTo(o2.getScore());
}
}

谢谢您的帮助!

最佳答案
您不能在int上调用方法;没有compareTo方法可以调用.那将是装箱的Integer类型,但是装箱会显得过大.

如果您使用的是Java 7,则应编写

return Integer.compare(o1.getScore(), o2.getScore());

…否则,您或多或少需要写

if (o1.getScore() < o2.getScore()) {
   return -1;
} else if (o1.getScore() > o2.getScore()) {
   return 1;
} else {
   return 0;
}

转载注明原文:java-比较器-无法取消引用int - 代码日志