【发布时间】:2019-08-02 11:58:47
【问题描述】:
有人可以帮助我理解 Java 8 功能接口中的以下代码 根据我的理解,accept() 将其作为输入并对其进行处理,但在 andThen() 的情况下不返回任何值,它是如何工作的
accept() 方法将类型 T 作为输入并且不返回任何值。
default Consumer<T> andThen(Consumer<? super T> after) {
Objects.requireNonNull(after);
return (T t) -> { accept(t); after.accept(t); };
}
【问题讨论】:
-
(T t) -> { accept(t); after.accept(t); }又是一个Consumer,它确保当前消费者首先是accepted,然后提到的after是accepted。 -
但是accept方法没有返回任何值那么我们怎么会得到Consumer呢?
-
@NPE 返回的值是完整的:
(T t) -> { accept(t); after.accept(t); },而不是调用accept(t)的结果。
标签: java java-8 functional-programming