知乎专栏 |
Supplier 没有入参,但是有返回值,通过 get() 获得。
Consumer 有入参,但是没有返回值,通过 andThen() 可以获得返回叔叔。
package cn.netkiller.test; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.Supplier; public class Test { public static void main(String[] args) { System.out.println(Thread.currentThread()); Supplier<String> supplier = () -> "hello, world"; String result = supplier.get(); System.out.println("Supplier: " + result); Consumer<String> consumer = (s) -> System.out.println(s); // consumer.accept("Hello, Neo!"); Consumer<String> then = consumer.andThen(value -> { System.out.println("Consumer: " + value); }); consumer.accept("Hello, Neo!"); then.accept("Hello, Netkiller!"); Predicate<Integer> predicate = i -> i > 5; System.out.println(predicate.test(1)); System.out.println(predicate.test(10)); Predicate<String> string = s -> !s.isEmpty(); string.or(s -> s.equals("neo")); System.out.println(string.test("")); System.out.println(string.test("neo")); } }