Java:包括"这个"参数或暗示

时间:2014-04-15 22:38:20

标签: java standards

是否存在Java推荐或行业最佳做法建议,以便在明确需要时包含或不包含this参数?

例如,假设实例变量和局部变量之间没有命名冲突,是否优先使用

this.someParam

或只是

someParam

当调用同一类中的方法时,优先使用

this.someMethod()

someMethod()

支持前者的论点是它使代码更加明确。支持后者的论点是它使代码更清晰。

我很好奇是否有任何文档建议采用这种或那种方式(我无法找到任何,使用单词this的谷歌搜索显然很棘手)或者如果是只是一个偏好问题。

6 个答案:

答案 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生成的代码)非常烦人。