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

2022-09-03 06:26:20

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

这将导致二传者如下所示:

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

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

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


答案 1

我认为目前仅将参数前缀应用于 setter 方法的唯一方法是为 setter 方法编写一个新模板,但访问器生成器不会使用此模板。您可以在 Window->Preferences->Java->Editor->Templates 下看到现有模板的列表,有关创建模板的一些提示,请参阅此问题

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

为了安抚您的代码约定,您可以指定所有实例变量都带有前缀,这样您的参数就不会覆盖实例变量,但您可能不希望这样做。


变量前缀

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

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

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


最终参数

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

若要在每次保存时自动应用最终参数,可以修改保存操作,在“窗口>**首选项>Java>编辑器>保存操作”下,确保选中“对保存执行所选操作”框(如果您愿意,这也将格式化代码和组织导入),选择“其他操作”选项,然后选择“配置” , 然后在“代码样式”下,应用与上面相同的内容


答案 2

非常简单...

  1. 在项目中的根项目文件夹下,创建一个名为(它可能已经存在)的文件夹。.settings
  2. 在此文件夹中,创建一个名为org.eclipse.jdt.core.prefs
  3. 在此文件中,包括以下行:

org.eclipse.jdt.core.codeComplete.argumentPrefixes=a

就是这样,你完成了。它应该只是工作。我找不到合适的文档,但这里有一些其他选项,你可以设置:

org.eclipse.jdt.core.codeComplete.argumentPrefixes= org.eclipse.jdt.core.codeComplete.argumentSuffixes= org.eclipse.jdt.core.codeComplete.fieldPrefixes= org.eclipse.jdt.core.codeComplete.fieldSuffixes= org.eclipse.jdt.core.codeComplete.localPrefixes= org.eclipse.jdt.core.codeComplete.localSuffixes= org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=