Android Studio出现“Reassigned local variable”通知的原因及处理咨询
关于“Reassigned local variable”下划线提示的说明
这个下划线和通知是IDE(比如Android Studio、IntelliJ)的代码检查提示,不是程序错误,所以不会导致编译失败或运行异常,Problems标签页也不会显示内容。
出现原因
Java里的String是不可变类型,当你执行value += "bcdefghijklmnop"时,并不是直接修改原来的字符串对象,而是创建了一个新的String对象,然后把value这个局部变量重新指向新对象。IDE的这个提示就是在告诉你:这个局部变量被重新赋值了,属于代码风格层面的提醒,目的是让你注意变量的可变性和赋值逻辑。
要不要处理?
- 完全可以直接忽略:它不影响程序功能,只是IDE的风格提示而已。
- 如果想消除提示,有两种方案:
- 改用
StringBuilder(更推荐,因为字符串拼接场景下StringBuilder性能更好,也符合可变操作的最佳实践):Canvas canvas; Paint p = new Paint(); StringBuilder value = new StringBuilder("a"); if(someCondition()) value.append("bcdefghijklmnop"); canvas.drawText(value.toString(), 50, 50, p); - 关闭IDE的这个检查:打开IDE的设置(Settings/Preferences),依次进入
Editor → Inspections → Java → Code style issues,找到Reassigned local variable选项,取消勾选即可。
- 改用
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

