IntelliJ在整个文件中应用检查修复

时间:2017-02-16 20:18:45

标签: java intellij-idea keyboard-shortcuts final

在IntelliJ中,我检查了可以使final打开的变量,以便IntelliJ突出显示这些变量,让我快速添加final关键字 Alt < / kbd> + 输入

当我打开通常不使用final关键字的其他人的代码时,我想快速将final添加到整个文件中的所有变量,如果可能的话,甚至是整个项目。

在IntelliJ中是否有任何快捷方式或其他方法可以轻松完成此操作?

2 个答案:

答案 0 :(得分:3)

感谢@Mzflink

从那篇文章:

当鼠标悬停在一个可以制作final的变量上时,可以使用典型的 Alt + Enter 快捷方式在当前文件中实现此目的,按< kbd>→,并选择“修复所有'局部变量或参数可以是文件中的最终'问题。”

Screenshot of solution

该子菜单中的下一个项目是“运行检查...”,这将允许您将修复应用于项目中的多个文件。

答案 1 :(得分:1)

不回答;我的意见支持,但最后,还有多年考虑代码质量主题的经验支持:

我知道,这是风格;但是,我认为你的风格没有帮助。与此相反的。所以答案是:不要那样做。不要随意将final放在任何变量上。

重点是:您希望源代码精确而详细......但也要“简约”。请记住:每个和任何写的字符都需要阅读。并由人类读者大脑“解析”和“处理”。

所以你想要平衡你写下来的东西。事情是:大多数时,那些final关键字将为您的源代码添加任何值。零。

final只有两个地方真正有所作为:

  1. 类字段。那些应该是final作为默认值 - 因为这会让你到达不可变对象的一半;这本身就是一件好事。当然,有时你必须允许字段改变它们的价值;但如上所述:那应该是例外。
  2. 变为lambdas,匿名内部类的变量,......换句话说:必须的变量不会被改变;因此,在“不同”的环境中使用它们变得“安全”。但是猜测一下:使用Java8,编译器甚至学会了检测有效最终变量。因此,即使没有final关键字,您也可以在lambad中使用它们。因此,即使是Java语言的父亲也建议你避免使用该关键字!
  3. 但超过这两个案例;您的代码中有数以万计的地方只有final 会影响您的大脑必须消化的输入;没有为您的程序增加价值。

    长话短说:退一步,重新思考你想要通过这项政策实现的目标。

    最后:您确定要记住撤消对其他人的代码的更改?如你所见:不是每个人都支持你的风格;所以你不应该只问如何轻易改变其他代码;还有以后如何还原 那些更改。假设您必须在源代码中进行一些真正的更改;然后将它们提交到您的存储库 - 您是否真的愿意进入并撤消您手动进行的final更改;同时确保保留所有其他“真实”的变化。