为什么在 Java 的 try-with-resource 中需要声明
Java7 的 try-with-resources 很棒,但是我无法理解为什么需要在语句中包含资源的声明。我的直觉告诉我,以下情况应该是可能的:try
CloseableResource thing;
try (thing = methodThatCreatesAThingAndDoesSomeSideEffect()) {
// do some interesting things
}
thing.collectSomeStats();
唉,这会导致语法错误(隐晦地期望一个)。将类型定义/声明移动到语句中是有效的,这当然会将事情移动到相应的范围中。我可以弄清楚如何解决这个问题,当我想要从我的更多而不是关闭时,我对为什么编译器需要这样感兴趣。;
try
AutoClosable