代码之家  ›  专栏  ›  技术社区  ›  e2rabi

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

  •  1
  • e2rabi  · 技术社区  · 6 年前

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

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

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

    1 回复  |  直到 6 年前
        1
  •  8
  •   Andrew    6 年前

    这是设计的。不能重新分配 final 变量。

    14.20.3. try-with-resources

    资源规范中声明的变量是 隐式声明 如果没有明确声明 最终的 (§4.12.4)。

    推荐文章