阅读新的 Supplier
界面我看不出它的用法有什么好处。
我们可以看到它的一个例子。
class Vehicle{
public void drive(){
System.out.println("Driving vehicle ...");
}
}
class Car extends Vehicle{
@Override
public void drive(){
System.out.println("Driving car...");
}
}
public class SupplierDemo {
static void driveVehicle(Supplier<? extends Vehicle> supplier){
Vehicle vehicle = supplier.get();
vehicle.drive();
}
}
public static void main(String[] args) {
//Using Lambda expression
driveVehicle(()-> new Vehicle());
driveVehicle(()-> new Car());
}
正如我们在那个例子中看到的那样 driveVehicle
方法期望一个 Supplier
作为论点。
为什么我们不改变它以期待一个 Vehicle
?
public class SupplierDemo {
static void driveVehicle(Vehicle vehicle){
vehicle.drive();
}
}
public static void main(String[] args) {
//Using Lambda expression
driveVehicle(new Vehicle());
driveVehicle(new Car());
}
使用的优点是什么? Supplier
?
编辑: 关于这个问题的答案 Java 8供应商和消费者对外行的解释 没有解释使用的好处 Supplier
。
有评论询问,但没有回答。
这有什么好处而不是直接调用方法? 是因为供应商可以像中间人那样行事并交出来 那个“回归”的价值?