java - 尝试使用资源为什么不能修改资源
问题描述
当我尝试将引用扫描的值设置为 null 时,我发现了一个无法编译的资源示例
try(Scanner scan = new Scanner(System.in)) {
String s = scan.nextLine();
System.out.println(s);
scan = null;
}
我问这个编译错误背后的规则是什么,我在网上做了一些搜索,但我没有找到解释它的规则谢谢你的解释:=)
解决方案
这是设计使然。您不能重新分配final
变量。
14.20.3。尝试资源
如果在资源规范中声明的变量没有显式声明(第 4.12.4 节),则它是隐式声明的。
final
final
推荐阅读
- r - 数据帧内多个组的平滑预测
- akka - akka stream alpakka csv:当从 CSV 文件读取的列数错误时,流失败
- vue.js - 具有多参数的插槽范围
- angular - DatePicker 提交上一个日期,当清除日期提交 `1970-01-01`
- python - 遍历 JSON 中的字符串数组
- mysql - 如果存在一种组合,则在插入/更新表时触发
- python-3.x - 如何选择具有一定顺序的结构化 numpy 数组的行
- git - 提交后将 git 存储库和工作目录复制到另一个位置,在检查状态时给出“未暂存的更改”
- c# - Web 服务未正确响应
- excel - 我创建了一个宏,但它没有完全按照我的操作,有什么问题吗?