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