尝试使用资源为什么不能修改资源
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).
我发现了一个 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 declaredfinal
(§4.12.4).