Inspectopedia Help

Inner class referenced via subclass

Reports accesses of inner and nested classes where the call is qualified by a subclass of the declaring class, rather than the declaring class itself.

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

Example:

class Super { static class Inner {} } class Sub extends Super { void test() { Sub.Inner s = new Sub.Inner(); // 'Inner' class is declared in 'Super' class, but referenced via 'Sub' class } }

After the quick-fix is applied:

class Super { static class Inner {} } class Sub extends Super { void test() { Super.Inner s = new Super.Inner(); } }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

InnerClassReferencedViaSubclass
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Probable bugs

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024