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