java - 从匿名内部类修改局部变量
问题描述
我发现我们不能从内部类修改局部变量,因为它被定义为 final。在阅读时,我发现我们必须将其标记为 final,这样它就不会产生任何值不匹配的问题。但是如果我们真的想从内部类修改局部变量怎么办。有什么解决办法吗?
解决方案
您不能修改局部变量。但如果局部变量是对象引用,则可以修改它所引用的对象。例如:
public static void main(String[] args) {
final AtomicReference<String> value = new AtomicReference<String>("hello");
System.out.println(value); // prints "hello"
new Runnable() {
public void run() { value.set("goodbye"); }
}.run();
System.out.println(value); // prints "goodbye"
}
推荐阅读
- reactjs - 如何在 Google Analytics 中触发自定义事件?
- php - 图像文件成功上传到文件夹但文件名未保存在数据库中
- excel - 个人测试功能给出#VALUE!将它归还给“好的”,这就是我在偏移单元格中所拥有的
- qaf - 如何在 QAF / Qmetry 框架中设置日志级别?
- windows - 如何在 Windows Server 2019 中实现垂直 Pod 自动缩放?
- flutter - 我有一个卡片小部件,我在不同的 GridView.builder 中使用。我该如何做到这一点,具体取决于单击 onTap 功能的位置?
- wheelnav.js - 如何在wheelnav.js 中的项目之间添加间距
- java - Spring Boot安全自定义登录页面到不同的url“/”不起作用
- java - Tomcat10 无法启动 bootstrap.jar 未找到
- python - 我需要将 python fille (.py) 转换为 QtDesigner fil (.ui) 而不是 invers