mrb*_*ela 3 java lambda java-8
我是Java 8的新手,并且正在搞乱一点.
现在我尝试了Java 8 andThen中的功能接口Consumer方法:
public static void main(String[] args) {
List<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
ints.add(i);
}
Consumer<Integer> cons1 = in -> System.out.println("--> " + in);
ints.forEach(cons1.andThen(in -> System.out.println("-+---> " + in)));
}
Run Code Online (Sandbox Code Playgroud)
它工作正常!输出是:
--> 0
-+---> 0
--> 1
-+---> 1
--> 2
-+---> 2
--> 3
-+---> 3
--> 4
-+---> 4
Run Code Online (Sandbox Code Playgroud)
现在,我问自己是否可以连接两个消费者(使用andThen方法)而不为第一个消费者创建自己的对象cons1?
是的,但它会比直截了当的做法更加混乱.
你可以写
ints.forEach(
((Consumer<Integer>) in -> System.out.println("--> " + in))
.andThen(in -> System.out.println("-+---> " + in)));
Run Code Online (Sandbox Code Playgroud)
但是写起来要好得多
ints.forEach(in -> {
System.out.println("--> " + in);
System.out.println("-+---> " + in);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |