由于新的更新 (2018.2) IntelliJ IDEA 强调变量,当它们“不必要地”重新分配时 - 然而,这包括每次使用“+=”。这是IDE中的错误还是我弄错了?请以这个基本方法为例。(它只是添加了一个数字列表。)
3 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
这是 IntelliJ IDEA 2018.2的一个新特性:
下划线重新分配的局部变量和重新分配的参数
默认情况下,IntelliJ IDEA 现在强调重新分配的局部变量和重新分配的参数。支持此功能的所有语言(目前包括 Java 和 Groovy)的属性都可以在Preferences/Settings | 中更改。编辑 | 配色方案 | 语言默认值 | 标识符 | 重新分配。
为什么它可能有用?
如果变量/参数有下划线,您就知道不能直接在 lambda/匿名类中使用它。
在阅读很长的方法代码时,如果参数没有下划线,您肯定知道它的值不会在此方法的任何地方重新分配,并且它包含在任何时候传递给此方法的完全相同的值。
一些代码指南反对重新分配变量,您可能希望尽可能避免使用它们以保持代码干净并使其更易于阅读/调试。
如今,许多开发人员更喜欢避免可变状态,并且仅在真正必要的极少数情况下才重新分配变量。我们不想手动强制执行不变性,我们假设默认情况下一切都是不可变的,并且希望在某些情况下引起额外的注意。如果您使用final
标记非可变变量,则意味着您需要为常规情况编写更多代码,在特殊情况下编写更少代码。(顺便说一句,现代语言中声明不可变变量不需要编写额外的代码,但不幸的是在 Java 中不需要)。
Java 语言架构师 Brian Goetz 也喜欢 IntelliJ IDEA 突出显示重新分配的变量的方式(请参阅他的推文)。
添加回答
举报
0/150
提交
取消