我当前的项目有编码约定,实例变量永远不会引用它。前缀和参数永远不应该隐藏实例变量。
这导致setter看起来像:
public void setFoo(final Foo aFoo)
{
foo = aFoo;
}
不幸的是,默认情况下eclipse不会为我生成。 我发现在代码风格中我可以通过在参数前缀列表中添加一个来接近它,但是我只希望它适用于set方法,我也想在那里添加最终标记。
有没有办法使用模板实现这一目标?其他一些配置?
答案 0 :(得分:18)
我认为目前仅为setter方法应用参数前缀的唯一方法是为setter方法编写一个新模板,但访问器生成器不会使用此模板。您可以在窗口 - > 偏好设置 - > Java - > 编辑器下查看现有模板列表 - > 模板,有关创建模板的一些提示,请参阅此question。
您可以修改Eclipse设置,以便在工作区或项目级别为所有类型的变量指定前缀(和后缀),这将适用于所有方法,而不仅仅是setter。您可以使用“清理”功能来确保参数是最终的。
为了安抚你的代码约定,可以指定所有实例变量都是前缀的,这样你的参数就不会覆盖实例变量,你可能不想这样做。
变量前缀
要修改工作区设置,请转到窗口 - &gt; 偏好设置 - &gt; Java - &gt; 代码样式< / strong>,然后编辑列表以使用您的首选前缀/后缀。
要修改项目设置,请打开项目属性( Alt + Enter ),然后选择 Java代码样式,选择启用项目特定设置,然后编辑工作区的首选项。
要仅为setter方法启用特定前缀,您必须深入研究代码模板的内部以识别和修改setter
最终参数
要确保所有方法参数都是最终的,您可以修改Java清理处理器以将 final 添加到参数中。在窗口 - &gt; 偏好设置 - &gt; Java - &gt; 代码样式 - &gt; 清洁向上,您可以复制或编辑活动配置文件。在代码样式标签下,在变量声明部分中选择使用修饰符'final'尽可能,然后确保参数已被选中。运行来源 - &gt; 清理
时将应用清理要在每次保存时自动应用最终参数,您可以在窗口 - &gt; **首选项 - &gt; Java - &gt; <下修改保存操作strong>编辑 - &gt; 保存操作,确保选中执行保存时选择的操作框(如果您愿意,这也会格式化您的代码并组织导入),选择其他操作选项,配置,然后在代码样式下,应用与上面相同的
答案 1 :(得分:2)
很简单......
.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=
答案 2 :(得分:0)
您可以使用Fast Code Eclipse Plugin轻松完成此操作。
答案 3 :(得分:0)
Eclipse - &gt;偏好 - &gt; Java - &gt;代码风格 - &gt;代码模板 - &gt;代码