Попробуйте с ресурсом, почему не можете изменить ресурс - PullRequest
3 голосов
/ 11 октября 2019

Я нашел пример попытки с ресурсами, который не компилируется, когда я пытаюсь установить значение эталонного сканирования равным нулю

try(Scanner scan = new Scanner(System.in)) {
    String s = scan.nextLine();
    System.out.println(s);
    scan = null;
}

Я спрашиваю, какое правило стоит за этой ошибкой компиляции, я сделал несколькопоиск в сети, но я не нашел правила, объясняющего это. Спасибо за любые объяснения: =)

1 Ответ

8 голосов
/ 11 октября 2019

Это по замыслу. Вы не можете переназначить переменную final.

14.20.3. try-with-resources

Переменная, объявленная в спецификации ресурса, неявно объявлена ​​final, если она не объявлена ​​явно final (§4.12.4).

...