由于新更新(2018.2)IntelliJ IDEA强调了变量,因此“不必要地”重新分配了变量-但是,这包括每次使用“ + =”。
这是IDE中的错误还是我弄错了?
请以这个基本方法为例。 (它只会添加数字列表。)
答案 0 :(得分:24)
这是IntelliJ IDEA 2018.2的new feature:
强调重新分配的局部变量和重新分配的参数
IntelliJ IDEA现在默认情况下突出显示了重新分配的局部变量和重新分配的参数。支持该功能的所有语言的属性(包括Java和Groovy)可以在 Preferences / Settings |编辑器配色方案|语言默认值|标识符|重新分配。
如果变量/参数带有下划线,则说明您不能在lambda / anonymous类中直接使用它。
在读取很长的方法代码时,如果未对参数加下划线,则可以确定该方法中的任何地方都不会重新分配其值,并且该参数包含的值与传递给该方法的值完全相同。 / p>
一些代码准则针对的是重新分配的变量,您可能希望尽可能避免使用它们,以保持代码的清洁并使其更易于阅读/调试。
如今,许多开发人员更喜欢避免可变状态,仅在真正必要的极少数情况下才重新分配变量。我们不想手动强制不变性,我们假设默认情况下所有内容都是不可变的,并且希望引起更多注意而不是不可改变的情况。如果使用final
标记非可变变量,则意味着在常规情况下需要编写更多代码,在特殊情况下需要编写较少的代码。 (现代语言中的BTW声明不可变的变量不需要编写其他代码,但是不幸的是,在Java中不需要。)
Java语言架构师Brian Goetz也喜欢IntelliJ IDEA突出显示重新分配的变量的方式(请参见his tweet)。
答案 1 :(得分:4)
答案 2 :(得分:0)
如果您知道side effect in programming是什么,那么对您来说将很容易。为了保护您的变量免受副作用的影响,IDE会将下划线显示为对您的警告。