局部变量和类变量重名是一个不良实践,会降低代码的可读性:这让人感到迷惑,应该访问局部变量还是类变量。
下述代码演示了这个规则:
class Foo {
public int myField;
public Foo(int myField) { // Compliant - method parameters are not checked
this.myField = myField;
}
@Override
public String toString() {
int myField = 0; // Non-Compliant - should be renamed
return "Foo{MyField: " + myField + "}";
}
}