为什么 try-with-resource 需要一个局部变量?
关于我的问题 Java.util.concurrent.locks.Lock 的 AutoCloseable 包装器中的任何风险,我想知道为什么 try-with-resource-statement 需要一个命名的局部变量。
我目前的用法如下:
try (AutoCloseableReentrantReadWiteLock.Lock l = _lock.writeLock()) {
// do something
}
该变量在 try 块中未使用,只会污染命名空间。据我所知,类似的C#-语句不需要局部命名变量。l
using
是否有任何原因不支持以下内容,并在 try 块结束时关闭一个匿名局部变量?
try (_lock.writeLock()) {
// do something
}