IntelliJ IDEA在JAVA中使用+ =时会强调变量

时间:2018-08-05 18:29:07

标签: java variables intellij-idea underline

由于新更新(2018.2)IntelliJ IDEA强调了变量,因此“不必要地”重新分配了变量-但是,这包括每次使用“ + =”。
这是IDE中的错误还是我弄错了?
请以这个基本方法为例。 (它只会添加数字列表。)

example image

3 个答案:

答案 0 :(得分:24)

这是IntelliJ IDEA 2018.2的new feature

强调重新分配的局部变量和重新分配的参数

IntelliJ IDEA现在默认情况下突出显示了重新分配的局部变量和重新分配的参数。支持该功能的所有语言的属性(包括Java和Groovy)可以在 Preferences / Settings |编辑器配色方案|语言默认值|标识符|重新分配

underline

为什么可能有用?

如果变量/参数带有下划线,则说明您不能在lambda / anonymous类中直接使用它。

在读取很长的方法代码时,如果未对参数加下划线,则可以确定该方法中的任何地方都不会重新分配其值,并且该参数包含的值与传递给该方法的值完全相同。 / p>

一些代码准则针对的是重新分配的变量,您可能希望尽可能避免使用它们,以保持代码的清洁并使其更易于阅读/调试。

如今,许多开发人员更喜欢避免可变状态,仅在真正必要的极少数情况下才重新分配变量。我们不想手动强制不变性,我们假设默认情况下所有内容都是不可变的,并且希望引起更多注意而不是不可改变的情况。如果使用final标记非可变变量,则意味着在常规情况下需要编写更多代码,在特殊情况下需要编写较少的代码。 (现代语言中的BTW声明不可变的变量不需要编写其他代码,但是不幸的是,在Java中不需要。)

Java语言架构师Brian Goetz也喜欢IntelliJ IDEA突出显示重新分配的变量的方式(请参见his tweet)。

答案 1 :(得分:4)

希望此屏幕截图会有所帮助。

enter image description here

答案 2 :(得分:0)

如果您知道side effect in programming是什么,那么对您来说将很容易。为了保护您的变量免受副作用的影响,IDE会将下划线显示为对您的警告。