一尘不染

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

java

我当前的项目有一个编码约定,即实例变量永远不会用this引用。前缀,并且该参数永远不应隐藏实例变量。

这将导致设置器看起来像:

public void setFoo(final Foo aFoo)
{
  foo = aFoo;
}

不幸的是,默认情况下,eclipse不会为我生成该信息。我发现在代码样式中,可以通过在参数前缀列表中添加a来接近它,但是我只希望将其应用于set方法,并且我也想在其中添加final标记。

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


阅读 250

收藏
2020-12-03

共1个答案

一尘不染

我认为,当前仅将参数前缀应用于setter方法的唯一方法是为setter方法编写新模板,但是访问器生成器将不会使用此模板。
您可以修改Eclipse设置,以在工作区或项目级别为所有类型的变量指定前缀(和后缀),但这将适用于所有方法,而不仅限于设置方法。您可以使用“清理”功能来确保您的参数是最终的。

为了安抚您的代码约定,您 可以 指定所有实例变量作为前缀,这样您的参数将不会覆盖实例变量,尽管您可能不想这样做。


可变前缀

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

要修改项目设置,请打开项目属性(Alt+ Enter),然后选择“ Java代码样式” ,选择“ 启用项目特定的设置”
,然后按照工作空间进行编辑首选项。

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


最终参数

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


要在每个保存中自动应用最终参数,您可以在 Window- > Preferences- > Java- > Editor- >
Save Actions 下修改 保存操作 ,确保 选中“对保存执行所选操作”
(这也会格式化)您的代码并根据需要组织导入),选择“
其他操作” 选项,然后 单击“配置” ,然后在 “代码样式”**
下应用与上述相同的方法

2020-12-03