Autocloseable
應始終與try-with-resources
一起使用。至少Intellij檢查表明它。 所以,如果我有一個產生Foo
實現Autocloseable
我應該做的代碼:Java8中的「Autocloseable」的數組或集合
try (final Foo foo = getFoo()) {
foo.doSomething();
}
但如果我有函數,返回Foo[]
?或接受Foo[]
(或Collection<Foo>
)作爲參數的函數?如何使用try-with-resources
? 着眼於以下功能:
Foo[] getFoos();
doAll(Foo... foo);
我想要做的事行doAll(getFoos())
我怎麼能這樣做?
我無法找到一種方法,使與增強的for循環這項工作,但如果真有人看到的方式,請更新我的編輯答案。 –
你的意思是for(Foo foo:getFoos())try(Foo toClose = foo){/ * code * /}'?這應該工作。 – Holger