Groovy多资源关闭

时间:2017-07-03 19:43:01

标签: groovy try-with-resources

我正在使用Groovy的资源关闭功能,并且想知道是否可以创建一个管理两个资源的闭包。例如,如果我有以下两个单独的闭包,是否可以创建一个管理它们的闭包?或者我真的必须嵌套闭包吗?

new File(baseDir, 'haiku.txt').withWriter('utf-8') { writer ->
    writer.writeLine 'Into the ancient pond'
}
new Scanner(System.in).with { consoleInput ->
    println consoleInput.nextLine()
}

1 个答案:

答案 0 :(得分:0)

没有。语法method(arg) {}method(arg, {})的替代语法,因此,您可以执行此操作:

fn = { writer ->
    writer.writeLine 'Into the ancient pond'
}

new File(baseDir, 'haiku.txt').withWriter('utf-8', fn) 

new Scanner(System.in).with(fn)

请注意,闭包必须包含两个方法调用的预期代码。