什么是Java 7等同于SomeClass :: compareTo表达式?

时间:2017-03-05 05:30:41

标签: java comparator

我的目的是创建一个自定义排序方法:

public void mySort
{
    this.sort(SomeClass::compareTo());
}

这在Java 8中运行得非常好,但Java 7很生气!我是否需要自定义排序方法,或者如果自定义ArrayList中的对象(SomeClass)(由 this 引用)内置了预定义的比较器,sort()方法是否会处理它?

2 个答案:

答案 0 :(得分:3)

List.sort(Comparator)的文档说,如果您传入null,则列表将根据其自然排序进行排序。因此,如果您的班级实施Comparable,您应该可以传递null

根据Comparable界面文档定义自然排序

  

此接口对实现它的每个类的对象强加一个总排序。这种排序被称为类的自然排序,而类的compareTo方法被称为其自然比较方法。

答案 1 :(得分:0)

上述解决方案并未最终实现我的实施。也就是说,Collections.sort(this.myList)创造了奇迹。谢谢你的建议!