我当前的项目有这样的编码约定,即实例变量永远不会被 this 引用。前缀,并且参数永远不应该隐藏实例变量。
这导致设置器看起来像:
public void setFoo(final Foo aFoo)
{
foo = aFoo;
}
不幸的是,eclipse默认不会为我生成那个。我发现在代码样式中,我可以通过在参数前缀列表中添加 a 来接近它,但是我只希望它应用于 set 方法,并且我也想在那里添加最终标记。
有没有办法使用模板来实现这一点?其他一些配置?
我认为目前仅对 setter 方法应用参数前缀的唯一方法是为 setter 方法编写一个新模板,但访问器生成器不会使用此模板。您可以在Window -> Preferences -> Java -> Editor -> Templates下看到现有模板的列表,有关创建模板的一些提示,请参阅此问题。
您可以修改 Eclipse 设置以在工作区或项目级别为所有类型的变量指定前缀(和后缀),但这将适用于所有方法,而不仅仅是 setter。您可以使用“清理”功能来确保您的参数是最终的。
为了满足您的代码约定,您可以指定所有实例变量都带有前缀,这样您的参数就不会覆盖实例变量,但您可能不想这样做。
变量前缀
要修改工作区设置,请转到Window -> Preferences -> Java -> Code Style,然后编辑列表以使用您的首选前缀/后缀。
要修改项目设置,请打开项目属性 ( Alt+ Enter),然后选择Java Code Style,选择Enable project specific settings,然后编辑工作区的首选项。
要仅为 setter 方法启用特定前缀,您必须深入研究代码模板的内部以识别和修改 setter
最终参数
为确保所有方法参数都是最终的,您可以修改 Java 清理处理器以将最终添加到参数中。在Window -> Preferences -> Java -> Code Style -> Clean Up下,您可以复制或编辑 Active Profile。在代码样式选项卡下,尽可能在变量声明部分中选择使用修饰符“final”,然后确保选择了参数。运行Source -> Clean Up时将应用清理
要在每次保存时自动应用最终参数,您可以修改保存操作,在Window->**Preferences -> Java -> Editor -> Save Actions下,确保选中在保存框上执行所选操作(这也将格式化您的代码并根据需要组织导入),选择Additional Actions选项,然后选择Configure,然后在Code Style下应用与上述相同的
非常简单...
.settings
(它可能已经存在)的文件夹。org.eclipse.jdt.core.prefs
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=
您可以使用Fast Code Eclipse Plugin轻松完成此操作。
Eclipse --> 首选项 --> Java --> 代码样式 --> 代码模板 --> 代码