Closure

Java 8的Lambda VS Groovy的Closure

匆匆过客 提交于 2020-03-02 03:13:12
本文翻译自: http://www.javacodegeeks.com/2014/06/java-8-lambdas-vs-groovy-closures-compactness-grouping-and-summing.html Java 8已经支持lambdas,它很像Groovy早就支持的:闭包。 在Groovy中,我们已经可以: def list = ['a', 'b', 'c'] print list.collect { it.toUpperCase() } // [A, B, C] { it.toUpperCase() } 就是一个闭包。 Java 8中,我们也可以使用简洁的方式来实现同样的功能: list.stream().map( s -> s.toUpperCase() ) 你可能会主张完全使用新的流API(new Stream API),bulk操作和方法引用。至少这样可以使用一段代码的意图被传达得更清晰——Java的啰嗦会刺疼你的双眼。 接下来是其他例子。 一些Groovy动物 class Animal { String name BigDecimal price String farmer String toString() { name } } def animals = [] animals << new Animal(name: "Buttercup"