水平有限,欢迎指正
/**
* Represents an operation that accepts a single input argument and returns no result.
* Unlike most other functional interface,Consumer is expected to operate via side-effects.
*
* This is a functional interface whose functional method is accept(Object);
*
* 表示接受一个入参,不返回结果的操作
* 不想其他函数式接口,Consumer可以通过副作用来实现操作
*
* 这个一个函数式接口,函数方法是accept(Object)
*
* @Param<T> the type of the input to the operation.
*/
@FunctionalInterface
public interface Consumer<T> {
/**
* Performs this operation on the given argument.
* 根据给定的参数,执行操作
* @param t
*/
void accept(T t);
/**
* Returns a composed Consumer that performs,in sequence,this operation followed by the 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 after operation will not be performed.
*
* 返回一个先执行本接口的方法,在执行after方法的组合Consumer。
* 如果执行任意一个方法时抛出了异常,则会将异常传递给这个组合操作的调用者。
* 如果执行本接口方法是抛了异常,则after的方法不会执行
* @param after the operation to perform after this operation. 在本接口方法之后执行的操作对象
* @return a composed Consumer that performs in sequence this operation followed by the after operation
* 一个先执行本接口方法在执行after操作的组合Consumer
* @throws NullPointerException if after is null 如果after为null
*/
default Consumer<T> andThen(Consumer<? super T> after){
Objects.requireNonNull(after);
return (T t)->{
accept(t);
after.accept(t);
};
}
}