IntelliJ IDEA 在 JAVA 中使用 += 时为变量加下划线
IntelliJ IDEA underlines variables when using += in JAVA
自新更新 (2018.2) IntelliJ IDEA 下划线变量,当它们 "unnecessarily" 重新分配时 - 但是,这包括每次使用“+=”。
这是 IDE 中的错误还是我弄错了?
请以这个基本方法为例。 (它只是添加了一个数字列表。)
这是 IntelliJ IDEA 2018.2 的new feature:
下划线重新分配的局部变量和重新分配的参数
IntelliJ IDEA 现在默认为重新分配的局部变量和重新分配的参数加下划线。所有支持此功能的语言的属性,目前包括 Java 和 Groovy,可以在 Preferences/Settings 中更改 |编辑|配色方案 |语言默认 |标识符 |重新分配.
为什么它可能有用?
如果variable/parameter有下划线,就知道不能直接在lambda/anonymousclass中使用
当阅读一个很长的方法代码时,如果参数没有下划线,您肯定知道它的值没有在这个方法的任何地方被重新分配,并且它包含的值与任何时候传递给这个方法的值完全相同.
一些代码指南反对重新分配变量,您可能希望尽可能避免使用它们以保持代码整洁并使其更容易 read/debug。
如今,许多开发人员更愿意避免可变状态,并且仅在真正有必要的极少数情况下才重新分配变量。我们不想手动强制执行不可变性,我们假设默认情况下一切都是不可变的,并且希望在某些情况下不可变的情况下引起额外的注意。如果您使用 final
标记非可变变量,则意味着您需要为常规情况编写更多代码,而在特殊情况下编写更少代码。 (顺便说一句,在现代语言中声明不可变变量不需要编写额外的代码,但不幸的是在 Java 中不需要)。
Brian Goetz,Java 语言架构师,也喜欢 IntelliJ IDEA 突出显示重新分配的变量的方式(参见 his tweet)。
希望这张截图能有所帮助。
如果您知道什么是 side effect in programming 那么这对您来说就很容易了。为了保护您的变量免受 副作用 ,IDE 显示下划线作为对您的警告。
自新更新 (2018.2) IntelliJ IDEA 下划线变量,当它们 "unnecessarily" 重新分配时 - 但是,这包括每次使用“+=”。
这是 IDE 中的错误还是我弄错了?
请以这个基本方法为例。 (它只是添加了一个数字列表。)
这是 IntelliJ IDEA 2018.2 的new feature:
下划线重新分配的局部变量和重新分配的参数
IntelliJ IDEA 现在默认为重新分配的局部变量和重新分配的参数加下划线。所有支持此功能的语言的属性,目前包括 Java 和 Groovy,可以在 Preferences/Settings 中更改 |编辑|配色方案 |语言默认 |标识符 |重新分配.
为什么它可能有用?
如果variable/parameter有下划线,就知道不能直接在lambda/anonymousclass中使用
当阅读一个很长的方法代码时,如果参数没有下划线,您肯定知道它的值没有在这个方法的任何地方被重新分配,并且它包含的值与任何时候传递给这个方法的值完全相同.
一些代码指南反对重新分配变量,您可能希望尽可能避免使用它们以保持代码整洁并使其更容易 read/debug。
如今,许多开发人员更愿意避免可变状态,并且仅在真正有必要的极少数情况下才重新分配变量。我们不想手动强制执行不可变性,我们假设默认情况下一切都是不可变的,并且希望在某些情况下不可变的情况下引起额外的注意。如果您使用 final
标记非可变变量,则意味着您需要为常规情况编写更多代码,而在特殊情况下编写更少代码。 (顺便说一句,在现代语言中声明不可变变量不需要编写额外的代码,但不幸的是在 Java 中不需要)。
Brian Goetz,Java 语言架构师,也喜欢 IntelliJ IDEA 突出显示重新分配的变量的方式(参见 his tweet)。
希望这张截图能有所帮助。
如果您知道什么是 side effect in programming 那么这对您来说就很容易了。为了保护您的变量免受 副作用 ,IDE 显示下划线作为对您的警告。