2017-07-17 59 views
5

我有一个凹槽代码(有一些Java风格元素)如何简化常规循环代码

dates.forEach new Consumer<Period>() { 
    @Override 
    void accept(Period period) { 
     println period 
    } 
} 

是否有可能做的更简单?

我想有像

dates.forEach println 

dates.forEach println date 

回答

10

只需使用

dates.each { println it } 
+1

另一种方法是:'dates.each System.out。&println' - 方法引用是闭包。 – cjstehno

2

Groovy闭包可以填写任何部位,其中要求对单一方法接口(与Java lambda表现相同)。所以你希望的代码已经非常接近实际工作的代码:

groovy:000> [1,2,3].forEach{ println it } 
1 
2 
3 
===> null