Java setter和"this"

Zub*_*air 5 java

我注意到很多人在Java setter中做过:

1)

public void setX(int x) {
    this.x = x;
}
Run Code Online (Sandbox Code Playgroud)

我个人不喜欢这个,我觉得应该是这样的:

2)

public void setX(int newX) {
    x = newX;
}
Run Code Online (Sandbox Code Playgroud)

首先会有更好的理由吗?

不是1)更容易犯错误.在几个场合,我跟踪了人们正在做的代码中的错误:

x = x; 
Run Code Online (Sandbox Code Playgroud)

错误的,可能是因为他们打字速度很快,只是想让吸气剂和制定者走开.

Bil*_*ard 14

这是一种风格问题.赞成的论据

public void setX(int x) { this.x = x; }
Run Code Online (Sandbox Code Playgroud)

是你不需要为输入参数考虑一个新的有意义的名称,因为你已经有了一个.

选择一种风格并始终如一地使用它.

  • 如果已经选择了一种风格,请坚持下去. (2认同)

Avi*_*Avi 7

更喜欢的理由this.x = x:

  1. this.x = x在构造函数中使用并且是Java程序员认可的已知模式.
  2. x该领域和参数均表示相同的值.
  3. x = newX没有句法指示一个是场和其它的参数.