是否存在Java推荐或行业最佳做法建议,以便在明确需要时包含或不包含this
参数?
例如,假设实例变量和局部变量之间没有命名冲突,是否优先使用
this.someParam
或只是
someParam
当调用同一类中的方法时,优先使用
this.someMethod()
或
someMethod()
支持前者的论点是它使代码更加明确。支持后者的论点是它使代码更清晰。
我很好奇是否有任何文档建议采用这种或那种方式(我无法找到任何,使用单词this
的谷歌搜索显然很棘手)或者如果是只是一个偏好问题。
答案 0 :(得分:1)
我不知道这里有一个“错误”的答案。然而,在我写Java的15年多时间里,我所看到的惯例是不包括“this”,除非有必要。
您可以通过以一致的方式命名变量来最大限度地减少混淆。那里有几个很好的会议文件。选一个并按照它。一些例子:
http://google-styleguide.googlecode.com/svn/trunk/javaguide.html https://source.android.com/source/code-style.html http://www.javaranch.com/style.jsp
答案 1 :(得分:1)
至于:
参数/属性 - 我总是建议在整个代码中使用一致的方法。在大多数情况下,所有自动生成的Java类的getter和setter都需要使用this
来区分参数名称和实际对象属性。因此,在整个代码中使用this
作为实例变量的一致性是一个很好的理由。样本设置器使用this
来避免歧义:
public void setName(String name) {
this.name = name;
}
this.someMethod()
只比someMethod()
长,并且不会比较短的someMethod()
提供任何好处。如果我们称之为后者,那么我们已经知道我们实际上正在调用this.someMethod()
。调用someMethod()
就像参数一样没有歧义,所以我不鼓励使用this.someMethod()
。答案 2 :(得分:1)
关于明确与清洁的优点:排除“这个”。毫无疑问,源文件中的文本字符“噪音”(尽管很小)。 “这个。”例如,如果在查看具有多行代码的方法时使用小型文本查看器,那么显式性会有所帮助(无论如何应该如此?)。因此,最好的显而易见性有限 - 特别是当现代IDE强调实例变量时。我认为不包括“这个”。作为代码风格。
答案 3 :(得分:0)
在我看来,世界上所有定义使用this
的良好实践的Java开发人员都没有共同的指导原则。我宁愿遵循公司/项目中使用的指南,或者,如果没有,那么你可以按照自己的方式编写读取良好的代码。
答案 4 :(得分:0)
没有最佳做法建议。大多数团队都有自己的编码风格。
就个人而言,我尝试对我的所有实例变量使用this
,但往往会避免使用方法。
答案 5 :(得分:0)
没有理由偏好其中一个。这是一个意见问题。
我的意见是,如果需要,您应该只使用this
。在某些情况下,必须使用此方法,例如,如果局部变量与实例变量具有相同的名称。它在我的构造函数中发生了很多:
public MyClass(String s, int i) {
this.s = s;
this.i = i;
}
如果您正在组建团队,我建议您制定一个您同意的策略,这样您就不会浪费太多时间重新格式化其他代码。另外,对我来说,查看过多使用this
的代码(例如由JD生成的代码)非常烦人。