Witam
Mam pytanie o to jakim cudem w miejsce metody przyjmującej 2 argumenty można wsadzić metodę przyjmującą 1 argument.
Tutaj wywoływana jest metoda z 2 argumentami:
Collections.sort(list, newMyComparator()::compare)
public int compare(MyObject o1, MyObject o2) {
return o1.compareTo(o2);
}
a tutaj z 1:
Collections.sort(list, MyObject::compareTo)
public int compareTo(MyObject o) {
if(o.x == x)
return 0;
else if(o.x > x)
return -1;
else
return 1;
}