Supplier:可以获取一些值(如构造器,函数方法等)
当调用get时,实际上是调用Supplier所指函数
Supplier参照构造器方法
Supplier<User> userSupplier = User::new;
User user = userSupplier.get();
参照静态方法
Supplier<User> userSupplier = UserFactory::produceUser;
User user = userSupplier.get();
class UserFactory {
public static User produceUser() {
return new User();
}
}
参照实例
Supplier<User> userSupplier = this::produceUser;
User user = userSupplier.get();
private User produceUser(){
return new User();
}
Consumer:可以接受一些参数
当调用accept时,实际上是调用Consumer所指函数
简单例子:
Consumer<User> userConsumer = (u) -> System.out.println("Username: "
+ u.getUsername());
userConsumer.accept(user);
如果英语好可以看原文:http://www.byteslounge.com/tutorials/java-8-consumer-and-supplier