这可能是一个简单的问题:我怎样才能大规模地重构Java代码,使大多数方法参数成为“final”?这是遵循我们的“检查样式”规则之一。我们有数以千计的Java文件,因此手动编辑所有这些文件似乎不是我们可以接受的解决方案。我在IntelliJ中没有找到任何这样的重构选项。有谁知道什么工具能帮上忙吗?或者任何聪明的方法来实现这一点?
zu0ti5jz1#
您可以使用IntelliJ的检查机制:1.导航至分析->按名称运行检验1.搜索“局部变量或参数可以是最终的”警告1.确保“报告方法参数”是唯一选中的选项。1.选择树的根(它应该显示为Local variable or parameter can be final”1.点击ALT+ENTER并选择“make final”。这应该在所有缺失的地方添加final修饰符。完成此操作后,您可能希望在IDE中启用此检查,以便它警告您犯下更多错误:1.导航到文件->设置->编辑器->检查1.搜索“局部变量或参数可以是最终的”警告1.确保“报告方法参数”是唯一选中的选项。
final
mwg9r5ms2#
在IntelliJ中,您可以选中“Make generated local variables final”和“Make generated parameters final”选项。在IntelliJ 2017.3中,它位于首选项->编辑器->代码样式-> Java ->代码生成选项卡中。x1c 0d1x的数据
pb3s4cty3#
免责声明:我不想引发IDE战争,我也不使用intelliJ,所以可能有一种方法可以做到这一点。但是既然您询问了一个工具来完成这项工作,并且手动工作可以证明使用不同的IDE是合理的,那么就在eclipse中开始吧。在eclipse中,您可以配置“clean up”任务,以便在任何可能的地方添加final。清理任务可以在单个编辑器窗口上运行,也可以从“源”上下文菜单在整个项目上运行。
lo8azlld4#
这个问题在几年前就被提出来了,但OpenRewrite还有另一种方法。这是它的配方:Finalize method arguments
4条答案
按热度按时间zu0ti5jz1#
您可以使用IntelliJ的检查机制:
1.导航至分析->按名称运行检验
1.搜索“局部变量或参数可以是最终的”警告
1.确保“报告方法参数”是唯一选中的选项。
1.选择树的根(它应该显示为Local variable or parameter can be final”
1.点击ALT+ENTER并选择“make final”。这应该在所有缺失的地方添加
final
修饰符。完成此操作后,您可能希望在IDE中启用此检查,以便它警告您犯下更多错误:
1.导航到文件->设置->编辑器->检查
1.搜索“局部变量或参数可以是最终的”警告
1.确保“报告方法参数”是唯一选中的选项。
mwg9r5ms2#
在IntelliJ中,您可以选中“Make generated local variables final”和“Make generated parameters final”选项。
在IntelliJ 2017.3中,它位于首选项->编辑器->代码样式-> Java ->代码生成选项卡中。
x1c 0d1x的数据
pb3s4cty3#
免责声明:我不想引发IDE战争,我也不使用intelliJ,所以可能有一种方法可以做到这一点。但是既然您询问了一个工具来完成这项工作,并且手动工作可以证明使用不同的IDE是合理的,那么就在eclipse中开始吧。
在eclipse中,您可以配置“clean up”任务,以便在任何可能的地方添加final。清理任务可以在单个编辑器窗口上运行,也可以从“源”上下文菜单在整个项目上运行。
lo8azlld4#
这个问题在几年前就被提出来了,但OpenRewrite还有另一种方法。这是它的配方:Finalize method arguments