Open Source, Open Future!
  menu
107 文章
ღゝ◡╹)ノ❤️

Consumer

源码

@FunctionalInterface
public interface Consumer<T> {

    /**
     * Performs this operation on the given argument.
     *
     * @param t the input argument
     */
    void accept(T t);

    /**
     * Returns a composed {@code Consumer} that performs, in sequence, this
     * operation followed by the {@code after} operation. If performing either
     * operation throws an exception, it is relayed to the caller of the
     * composed operation.  If performing this operation throws an exception,
     * the {@code after} operation will not be performed.
     *
     * @param after the operation to perform after this operation
     * @return a composed {@code Consumer} that performs in sequence this
     * operation followed by the {@code after} operation
     * @throws NullPointerException if {@code after} is null
     */
    default Consumer<T> andThen(Consumer<? super T> after) {
        Objects.requireNonNull(after);
        return (T t) -> { accept(t); after.accept(t); };
    }
}

说明:

  • accept:接收一个参数无返回值;
  • andThen:先执行自己,在执行传入的函数;

示例

    @Test
    public void test2() {
        Consumer<String> consumer1 = message -> System.out.println("consumer1:" + message);
        Consumer<String> consumer2 = message -> System.out.println("consumer2:" + message);
        consumer2.andThen(consumer1).accept("hello");
    }

输出结果:

consumer2:hello
consumer1:hello