使用不必要的"这个"在构造函数中设置实例变量?

时间:2018-04-03 17:41:08

标签: java

我写了一段代码:

public abstract class TestService extends Base {
   protected final MappedObject<A, B> mappedObject;
   public TestService(Provider provider, ObjectMapper objectMapper) {
      mappedObject = new MappedObject.Builder<A, B>(...);
      ...
   }
   ...
}

但是,我已被指示将前缀this添加到mappedObject,因为它在设置实例变量时是惯例。这是真的吗?

我的印象是this作为前缀只有在存在可能导致歧义的同名参数时才需要使用。因此,引用实例变量而不是传递的参数需要this

1 个答案:

答案 0 :(得分:0)

正如您似乎意识到的那样,只要类的局部变量和成员变量之间没有歧义,它就没有必要。

然而,这方面有许多不同的学校,以及它的常规和#34;或不根据您的要求而变化(不同的开发者有不同的偏好,不同的公司有不同的约定等)。我会说这在学校课程中最常见。在现实世界中,您可能会不时在构造函数中看到它,但根据我的个人经验,这种情况非常罕见。

我发现的东西更像是一个约定,并且与这个问题有点联系,就是在成员变量前加m,如mMappedObject中所示,表明它是一个成员变量。这很常见 - 事实上,人们可能会认为它可能比this前缀更常见。