作者:疯子jiushiwohaha | 来源:互联网 | 2022-12-08 16:26
由于新的更新(2018.2)IntelliJ IDEA强调变量,当它们被"不必要地"重新分配时 - 但是,这包括每次使用"+ =".
这是IDE中的错误还是我弄错了?
请以此基本方法为例.(它只是添加一个数字列表.)
1> CrazyCoder..:
这是IntelliJ IDEA 2018.2 的新功能:
为重新分配的局部变量和重新分配的参数加下划线
IntelliJ IDEA现在默认为重新分配的局部变量和重新分配的参数加下划线.支持此功能的所有语言的属性(现在包括Java和Groovy)可以在Preferences/Settings中更改 编辑| 配色方案| 语言默认值| 标识符| 重新分配.
为什么它可能有用?
如果变量/参数带有下划线,则表示您无法直接在lambda/anonymous类中使用它.
当读取非常长的方法代码时,如果参数没有加下划线,您肯定知道它的值不会在此方法中的任何位置重新分配,并且它包含与任何时候传递给此方法的值完全相同的值.
某些代码指南针对重新分配的变量,您可能希望尽可能避免使用它们以保持代码清洁并使其更易于读取/调试.
如今,许多开发人员更愿意避免可变状态,并且仅在极少数情况下才真正需要时重新分配变量.我们不想手动强制执行不变性,我们假设默认情况下所有内容都是不可变的,并且当某些内容不是时,需要额外关注这些情况.如果您使用final
标记非可变变量,则意味着您需要为常规案例编写更多代码,并在特殊情况下编写更少代码.(BTW在现代语言中声明不可变变量不需要编写额外的代码,但遗憾的是不是在Java中).而Java语言架构师Brian Goetz也喜欢IDEA重新分配变量的方式(见他的推文).
我看到的最糟糕的intellij增强功能之一。有人向他们提出了可用性问题。随时对其进行投票:https://youtrack.jetbrains.com/issue/IDEA-207835
基本上是`final`可以用来做的事情(只是不是每个人都使用它)