如何修改Eclipse自动生成的set方法签名?

Tra*_*xon 16 java eclipse setter templates

我当前的项目有编码约定,实例变量从未被引用过.前缀和参数永远不应该隐藏实例变量.

这导致setter看起来像:

public void setFoo(final Foo aFoo)
{
  foo = aFoo;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,默认情况下eclipse不会为我生成.我发现在代码风格中我可以通过在参数前缀列表中添加一个来接近它,但是我只希望它应用于set方法,我也想在那里添加最终标记.

有没有办法使用模板实现这一目标?其他一些配置?

Ric*_*ler 19

我认为目前仅为setter方法应用参数前缀的唯一方法是为setter方法编写一个新模板,但访问器生成器不会使用此模板.你可以看到在现有模板列表窗口 - > 首选项 - > Java的 - > 编辑 - > 模板,看到这个问题上创建一个模板一些提示.

您可以修改Eclipse设置以在工作空间或项目级别为所有类型的变量指定前缀(和后缀),这将适用于所有方法,而不仅仅是setter.您可以使用"清理"功能来确保参数是最终的.

为了安抚你的代码约定,你可以指定所有实例变量都是前缀,这样你的参数就不会覆盖实例变量,你可能不想这样做.


变量前缀

要修改工作区设置,请转到窗口 - > 首选项 - > Java - > 代码样式,然后编辑列表以使用首选前缀/后缀.

要修改项目设置,请打开项目属性(Alt+ Enter),然后选择Java代码样式,选择启用项目特定设置,然后编辑工作区的首选项.

要仅为setter方法启用特定前缀,您必须深入研究代码模板的内部,以识别和修改setter


最终参数

要确保所有方法参数都是最终的,您可以修改Java清理处理器以将final添加到参数中.在窗口 - > 首选项 - > Java - > 代码样式 - > 清理下,您可以复制或编辑活动配置文件.在" 代码样式"选项卡下,在" 变量声明"部分中选择"尽可能使用修饰符'final',然后确保选择" 参数".运行Source - > Clean Up时将应用Clean Up

要在每次保存时自动应用最终参数,您可以修改保存操作,在窗口 - >**首选项 - > Java - > 编辑器 - > 保存操作下,确保选中"在保存时执行选定的操作"框(这也将格式化)如果你愿意,你的代码和组织导入),选择Additional Actions选项,然后选择Configure,然后在Code Style下,应用与上面相同的内容