知乎专栏 |
Consumer<String> printer = (s) -> System.out.println(s); // 使用 accept 方法执行操作 printer.accept("Hello, World!");
Consumer<String> upperCasePrinter = (s) -> System.out.println(s.toUpperCase()); Consumer<String> lowerCasePrinter = (s) -> System.out.println(s.toLowerCase()); // 使用 andThen 方法连接两个 Consumer Consumer<String> combinedPrinter = upperCasePrinter.andThen(lowerCasePrinter); combinedPrinter.accept("Hello world!!!");
package cn.netkiller; import java.util.function.Consumer; import lombok.Data; /** * TestConsumer */ @Data public class TestConsumer { private String name; private String nickname; private int age; public void init(Consumer<TestConsumer> configurator) { configurator.accept(this); } public static void main(String[] args) { System.out.println("Hello world!"); TestConsumer test = new TestConsumer(); // 使用 Consumer 配置 Person 对象 test.init(p -> { p.setName("Neo"); p.setNickname("netkiller"); p.setAge(30); }); System.out.println(test); } }
andThen
Consumer<Integer> test = (n) -> { System.out.println(n); }; test.andThen((v) -> { System.out.println(v); }).accept(100);