Inspectopedia Help

Static field referenced via subclass

Reports accesses to static fields where the call is qualified by a subclass of the declaring class, rather than by the declaring class itself.

Java allows such qualification, but such accesses may indicate a subtle confusion of inheritance and overriding.

Example:

class Parent { static int foo = 0; } class Child extends Parent { } void bar() { System.out.println(Child.foo); }

After the quick-fix is applied, the result looks like this:

class Parent { static int foo = 0; } class Child extends Parent { } void bar() { System.out.println(Parent.foo); }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023