Что касается моего вопроса Любой риск в обертке AutoCloseable для java.util.concurrent.locks.Lock?, мне интересно, почему trh try-with-resource
требует локальная переменная.
Мое текущее использование выглядит следующим образом:
try (AutoCloseableReentrantReadWiteLock.Lock l = _lock.writeLock()) {
// do something
}
Переменная l
не используется внутри блока try и только загрязняет пространство имен. Из того, что я помню, аналогичный оператор C#
using
не требует локальной именованной переменной.
Есть ли какая-то причина, по которой невозможно было поддерживать следующее: с анонимной локальной переменной, которая закрыта в конце блока try?
try (_lock.writeLock()) {
// do something
}