Comparator
is defined as a lambda expression which could be expressed using
methods like Comparator.comparing()
.
This inspection also reports chain comparisons which can be replaced by Comparator.thenComparing()
.
Example:
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;
});
After the quick-fixes are applied:
myList.sort(Comparator.comparing(Person::getName));
myList2.sort(Comparator.comparing(Person::first)
.thenComparing(Person::second)
.thenComparingInt(Person::third));
New in 2016.3