尝试使用资源为什么不能修改资源

Try with resource why cannot modify resource

我发现了一个 try with resources 示例,当我尝试将参考扫描的值设置为 null 时,该示例无法编译

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

请问这个编译错误背后的规则是什么,我在网上搜索了一些但没有找到解释它的规则 感谢您的任何解释:=)

这是设计使然。您不能重新分配 final 变量。

14.20.3. try-with-resources

A variable declared in a resource specification is implicitly declared final if it is not explicitly declared final (§4.12.4).