首页javalambda_interfaceJava Stream - 如何组合方法链和消费者功能接口

Java Stream - 如何组合方法链和消费者功能接口

我们想知道如何组合方法链和消费者功能接口。
import java.util.function.Consumer;

public class Main {

  public static void main(String[] args) {
    Mailer.send(mailer -> {
      mailer.to("to@example.com").from("from@exmaple.com")
          .subject("Some subject").body("Some content");
    });
  }
}

class Mailer {
  public Mailer to(String address) {
    System.out.println("To: " + address);
    return this;
  }

  public Mailer from(String address) {
    System.out.println("From: " + address);
    return this;
  }

  public Mailer subject(String sub) {
    System.out.println("Subject: " + sub);
    return this;
  }

  public Mailer body(String body) {
    System.out.println("Body: " + body);
    return this;
  }

  public static void send(Consumer<Mailer> mailerOperator) {
    Mailer mailer = new Mailer();
    mailerOperator.accept(mailer);
    System.out.println("Sending ...");
  }
}