您更喜欢哪个?为什么?
public void setPresenter(Presenter presenter) {
this.presenter = presenter;
}
public void setPresenter(Presenter p) {
presenter = p;
}
答案 0 :(得分:10)
我更喜欢this
- 符号,至少在构造函数和复合setter方法中,你有多个参数。
在setter的特定情况下,我实际上没有意见,因为方法名称足够解释,并且实现是单个赋值。
答案 1 :(得分:3)
我更喜欢this
- 此课程说明原因
class foo {
int value;
int otherValue;
void setValue(int i) {
value = i;
}
void setOtherValue(int i) {
otherValue = i;
}
// uhh what?
void setBoth(int i, int j) {
// which one should be first? oh, you guessed and got it wrong? tooooo bad!
}
}
答案 2 :(得分:2)
对于方法,我们使用完整的单词作为变量和TLA,因此我们将使用:
public void setPresenter(Presenter prs) {
presenter=prs;
}
这允许使用相当清晰的名称,避免由省略的this
引起的错误分配错误,并明确区分长期/宽范围标识符与短期/窄范围标识符。
答案 3 :(得分:1)
我不想使用this
,因为(意外地)将其遗漏(虽然主要使用它)可能会导致更长的方法出现阴影错误。
但是,您应该为参数使用合理的名称。 这就是为什么我更喜欢为参数和局部变量使用前缀:
public void setPresenter(Presenter pPresenter) {
presenter = pPresenter; //pXxxx stands for 'parameter'
Presenter tPresenter = pPresenter; //tXxxx stands for 'temporary' or local
}