报告将 Comparator 定义为可以使用 Comparator.comparing() 等方法表达的 lambda 表达式的情况。

此检查还报告可以由 Comparator.thenComparing() 替换的链比较。

示例:


  myList.sort((person1, person2) -> person1.getName().compareTo(person2.getName()));

  myList2.sort((person1, person2) -> {
      int res = person1.first().compareTo(person2.first());
      if(res == 0) res = person1.second().compareTo(person2.second());
      if(res == 0) res = person1.third() - person2.third();
      return res;
  });

在应用快速修复后:


  myList.sort(Comparator.comparing(Person::getName));

  myList2.sort(Comparator.comparing(Person::first)
                         .thenComparing(Person::second)
                         .thenComparingInt(Person::third));

2016.3 的新功能