2017-07-03 2 views
1

私はGroovyのリソースクロージャ機能を使用しています.2つのリソースを管理するクロージャを1つ作成できるかどうかは疑問でした。たとえば、次の2つの別々のクロージャがある場合、両方を管理するクロージャを1つ作成できますか?あるいは、私は実際にクロージャを入れ子にしなければなりませんか?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() 
} 
+0

多分このリンクはあなたを助けることができますか? https://stackoverflow.com/questions/23382079/groovy-try-with-resources-construction-analogue – rafaelim

答えて

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) 

は注意を呼び出し。

関連する問題