1.lamda表达式
1.1.Consumer
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
default Consumer<T> andThen(Consumer<? super T> after) {
Objects.requireNonNull(after);
return (T t) -> { accept(t); after.accept(t); };
}
}
consumer,可以简单理解为一个没有返回值的方法,consumer.accpt(a),a就是方法的入参
示例:
Consumer<Integer> consumer = x->{
int a = x+2;
System.out.println(a);
};
Consumer<Integer> after = x->{
int a= x*2;
System.out.println(a);
};
consumer.andThen(after).accept(4);
运行结果:
6
8
解释:先执行consumer.accpt(4),得出来的结果就是 a=6,并将结果输出;
在执行consumer.andThen(after),得出来的结果就是a=8,并将结果输出;值得注意的是,consumer.andThen(after)的入参就是consumer.accpt(4)的入参,4(即两个consumer入参是相同的,只不过先后执行顺序不同);还有就是调用andThen一定要先调用accpt,不然没有用;