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

Java IntelliJ在整个文件中应用检查修复程序,java,intellij-idea,keyboard-shortcuts,final,Java,Intellij Idea,Keyboard Shortcuts,Final,在IntelliJ中,我有一个检查功能,检查可以启用的变量final,这样IntelliJ将突出显示这些变量,让我用Alt+Enter快速添加final关键字 当我打开通常不使用final关键字的其他人的代码时,如果可能的话,我希望有一种快速的方法将final添加到整个文件甚至整个项目中的所有变量中 在IntelliJ中有没有捷径或其他方法可以轻松做到这一点?没有答案;我的观点支持这一观点,但最终,我的观点也得到了多年思考代码质量主题的经验的支持: 我知道,这就是风格;但是,我仍然认为你的风格是

在IntelliJ中,我有一个检查功能,检查可以启用的变量
final
,这样IntelliJ将突出显示这些变量,让我用Alt+Enter快速添加
final
关键字

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


在IntelliJ中有没有捷径或其他方法可以轻松做到这一点?

没有答案;我的观点支持这一观点,但最终,我的观点也得到了多年思考代码质量主题的经验的支持:

我知道,这就是风格;但是,我仍然认为你的风格是没有帮助的。恰恰相反。所以答案是:不要这样做。不要随便对任何变量使用
final

要点是:你希望你的源代码是精确和详细的。。。但也是“极简主义”。请记住:每一个和任何字符写。。。需要阅读。以及被人类大脑“解析”和“处理”

所以你想平衡你写下的东西。事情是:大多数时候,那些
final
关键字将不会给源代码增加任何价值。零

只有两个地方的
final
真正起作用:

  • 类字段。那些应该是默认的
    final
    ,因为这会让你在不可变对象上半途而废;这本身就是一件好事。当然,有时必须允许字段更改其值;但正如所说:这应该是个例外
  • 进入lambdas的变量,匿名内部类。。。换句话说:必须保护的变量不被更改;因此,在“不同”的上下文中使用它们变得“安全”。但是猜猜看:在Java8中,编译器甚至学会了有效地检测最终变量。因此,即使没有
    final
    关键字,您也可以在lambads中使用它们。因此,即使是Java语言的创始人也建议您避免使用该关键字 但除了这两种情况之外;在你的代码中有无数个地方,只有
    final
    有助于你的大脑消化输入;不会给你的程序增加价值

    长话短说:退后一步,重新思考一下你试图通过这项政策实现什么

    最后:您确定您将记住撤消对其他人代码的更改吗?正如你所看到的:不是每个人都支持你的风格;因此,您不仅应该询问如何轻松地更改其他代码;还有,以后如何恢复这些更改。假设您必须对源代码进行一些真正的更改;然后将它们提交到您的存储库中—您真的愿意随后进入并撤消手动所做的
    最终更改吗;同时确保所有其他“真实”变化得到保持

    感谢您的邀请

    从该职位:

    您可以在当前文件中使用典型的Alt+Enter快捷方式来实现这一点,将鼠标悬停在一个这样的变量上,该变量可以设置为
    final
    ,然后按→, 并选择“修复所有”局部变量或参数可能是文件中的最终“问题”

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

    我认为这会有所帮助: