public class Car {
private int maxSpeed;
public Car(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
public int getMaxSpeed() {
return maxSpeed;
}
}
Мы можем сортировать список автомобилей,
Car carX = new Car(155);
Car carY = new Car(140);
List<Car> cars = new ArrayList<>();
cars.add(carX);
cars.add(carY);
cars.sort(Comparator.comparing(Car::getMaxSpeed));
Если мы видим сигнатуру метода Comparator.comparing
, входной тип параметра Function<? super T, ? extends U>
В приведенном выше примере, как Car::getMaxSpeed
применяется к Function<? super T, ? extends U>
, а следующее не компилируется?
Function<Void, Integer> function = Car::getMaxSpeed;