org.sonar.l10n.java.rules.squid.S2388.html Maven / Gradle / Ivy
When an inner class extends another class, and both its outer class and its parent class have a method with the same name, calls to that method can be confusing. The compiler will resolve the call to the superclass method, but maintainers may be confused, so the superclass method should be called explicitly, using super.
.
Noncompliant Code Example
public class Parent {
public void foo() { ... }
}
public class Outer {
public void foo() { ... }
public class Inner extends Parent {
public void doTheThing() {
foo(); // Noncompliant; was Outer.this.foo() intended instead?
// ...
}
}
}
Compliant Solution
public class Parent {
public void foo() { ... }
}
public class Outer {
public void foo() { ... }
public class Inner extends Parent {
public void doTheThing() {
super.foo();
// ...
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy