1. 程式人生 > >Java 8 Consumer and Supplier

Java 8 Consumer and Supplier

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);