public class HiddenFieldCheck extends MyBaseClass {
private int foo;
public int bar;
{
int foo = this.foo; // Noncompliant [[sc=9;ec=12]] {{Rename "foo" which hides the field declared at line 3.}}
int ok = 0; // Compliant
System.out.println(foo + ok);
}
public HiddenFieldCheck(int foo) { // Compliant
this.foo = foo;
}
public void setFoo(int foo) { // Compliant
this.foo = foo;
}
public int setNinja(int foo) { // Compliant
this.foo = foo;
return 0;
}
public int getFoo() {
return foo;
}
public void method1(int foo) { // Compliant - parameter
int base1 = 0; // Compliant
int base2 = 0; // Compliant
int unrelated = 0; // Compliant
System.out.println(base1 + base2 + unrelated);
}
@Override
public void method2() {
MyOtherBaseClass instance = new MyOtherBaseClass() {
@Override
public void foo() {
int bar = 0; // Noncompliant {{Rename "bar" which hides the field declared at line 4.}}
int otherBase1 = 0; // Compliant - limitation
System.out.println(bar + otherBase1);
}
};
instance.foo();
}
public static class MyInnerClass {
int bar;
int myInnerClass1;
public void foo() {
int bar = 0; // Noncompliant {{Rename "bar" which hides the field declared at line 55.}}
System.out.println(bar);
}
public class MyInnerInnerClass {
public void foo() {
int foo = 0;
int myInnerClass1 = 0; // Noncompliant
System.out.println(foo + myInnerClass1);
}
}
}
}
class MyBaseClass {
public int base1;
private int base2;
public int getBase2() {
return base2;
}
public void method2() {
int base1 = 0; // Noncompliant
int base2 = 0; // Noncompliant
System.out.println(base1 + base2);
}
}
abstract class MyOtherBaseClass {
public int otherBase1;
public abstract void foo();
}
enum MyEnum {
A, B;
public void foo() {
int a = 0;
System.out.println(a);
}
}
final class DataUtils {
public int foo;
public interface Sortable {
int size();
void swap(int foo, int j); // Compliant - parameter
boolean isLess(int i, int j);
}
}
class Foo {
int i;
{
for (i = 0; i < 42; i++) {
}
}
static {
int i = 0; // Compliant
}
static void foo() {
int i = 0; // Compliant
}
}
public @interface AnnotationType {
String[] value();
}