Java 8中特殊lambda表达式的最短表示法
发布时间:2020-12-15 04:47:29 所属栏目:Java 来源:网络整理
导读:我是 Java 8的新手,并且正在搞乱一点. 现在我已经尝试了Java 8中功能接口Consumer的andThen方法: public static void main(String[] args) { ListInteger ints = new ArrayListInteger(); for (int i = 0; i 5; i++) { ints.add(i); } ConsumerInteger cons
我是
Java 8的新手,并且正在搞乱一点.
现在我已经尝试了Java 8中功能接口Consumer的andThen方法: 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))); } 它工作正常!输出是: --> 0 -+---> 0 --> 1 -+---> 1 --> 2 -+---> 2 --> 3 -+---> 3 --> 4 -+---> 4 现在,我问自己是否可以连接两个消费者(使用andThen方法)而不为第一个消费者cons1创建自己的对象? 解决方法
是的,但它会比直截了当的做法更加混乱.
你可以写 ints.forEach( ((Consumer<Integer>) in -> System.out.println("--> " + in)) .andThen(in -> System.out.println("-+---> " + in))); 但是写起来要好得多 ints.forEach(in -> { System.out.println("--> " + in); System.out.println("-+---> " + in); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |