Почему для try-with-resource требуется локальная переменная?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему для try-with-resource требуется локальная переменная?

Сообщение Anonymous »

Что касается моего вопроса, есть ли риск в оболочке AutoCloseable для java.util.concurrent.locks.Lock?, мне интересно, почему для оператора try-with-resource требуется именованная локальная переменная вообще.
В настоящее время я использую следующее:
try (AutoCloseableReentrantReadWiteLock.Lock l = _lock.writeLock()) {
// do something
}

Переменная l не используется внутри блока try и только загрязняет пространство имен. Насколько я помню, аналогичный оператор C# using не требует локальной именованной переменной.
Есть ли какая-либо причина, по которой следующее не могло поддерживаться с анонимной локальной переменной? переменная, которая закрывается в конце блока try?
try (_lock.writeLock()) {
// do something
}


Подробнее здесь: https://stackoverflow.com/questions/165 ... l-variable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»