java - Java8的.map()流操作的Groovy替代方案

标签 java groovy

Groovy对于Java 8的.map()的替代方案是什么?

例子:

List<String> codes = events
    .stream()
    .map(event -> event.getCode())
    .collect(Collectors.toList());

我正在尝试做
events.each { it; return it.getCode() }.collect() as String[]

但是我得到的是ListString,但是是toString()表示形式而不是代码

最佳答案

考虑如下所示的collect方法:

class Event {
    def code
    def name
}

def events = []
events << new Event(code: '001', name: 'a')
events << new Event(code: '002', name: 'b')

def codes = events.collect { it.code }

assert ['001','002'] == codes
注意,等效的Groovy习惯用法是spread-dot operator:
def codes = events*.code

关于java - Java8的.map()流操作的Groovy替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47184576/

相关文章:

java - 如何从Hadoop集群复制文件到本地文件系统

java.lang.NoSuchFieldError : resources - Eclipse AST parser error

authentication - 401 使用 HttpBuilder (Groovy) 未经授权访问 Github API

groovy - 使用map构造函数时,groovy中setter按什么顺序触发

Java 多维数组。空指针

Java GNU GetOpt : Understanding LongOpt's StringBuffer flag

java - 在UNO安装中的Accumulo 2.0上运行Hello World示例InsertWithBatchWriter的问题

soap - 在 SoapUI 中使用 groovy 脚本记录测试步骤响应

groovy - 如何使用soapUI MockService 的外部响应文件的相对路径

Jenkinsfile - groovy readFile 方法导致序列化错误