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