为了账号安全,请及时绑定邮箱和手机立即绑定

IntelliJ IDEA 在 JAVA 中使用 += 时给变量加下划线

IntelliJ IDEA 在 JAVA 中使用 += 时给变量加下划线

湖上湖 2021-06-24 18:02:08
由于新的更新 (2018.2) IntelliJ IDEA 强调变量,当它们“不必要地”重新分配时 - 然而,这包括每次使用“+=”。这是IDE中的错误还是我弄错了?请以这个基本方法为例。(它只是添加了一个数字列表。)
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

这是 IntelliJ IDEA 2018.2的一个新特性

下划线重新分配的局部变量和重新分配的参数

默认情况下,IntelliJ IDEA 现在强调重新分配的局部变量和重新分配的参数。支持此功能的所有语言(目前包括 Java 和 Groovy)的属性都可以在Preferences/Settings | 中更改。编辑 | 配色方案 | 语言默认值 | 标识符 | 重新分配

//img1.sycdn.imooc.com//60dc2a210001d33e09510699.jpg

为什么它可能有用?

如果变量/参数有下划线,您就知道不能直接在 lambda/匿名类中使用它。

在阅读很长的方法代码时,如果参数没有下划线,您肯定知道它的值不会在此方法的任何地方重新分配,并且它包含在任何时候传递给此方法的完全相同的值。

一些代码指南反对重新分配变量,您可能希望尽可能避免使用它们以保持代码干净并使其更易于阅读/调试。

如今,许多开发人员更喜欢避免可变状态,并且仅在真正必要的极少数情况下才重新分配变量。我们不想手动强制执行不变性,我们假设默认情况下一切都是不可变的,并且希望在某些情况下引起额外的注意。如果您使用final标记非可变变量,则意味着您需要为常规情况编写更多代码,在特殊情况下编写更少代码。(顺便说一句,现代语言中声明不可变变量不需要编写额外的代码,但不幸的是在 Java 中不需要)。

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


查看完整回答
反对 回复 2021-06-30
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 494 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信