Inspectopedia Help

Inner class may be 'static'

Reports inner classes that can be made static.

A static inner class does not keep an implicit reference to its enclosing instance. When using Java 17 or before, this prevents a common cause of memory leaks and uses less memory per instance of the class.

Example:

public class Outer { class Inner { // not static public void foo() { bar("x"); } private void bar(String string) {} } }

After the quick-fix is applied:

public class Outer { static class Inner { public void foo() { bar("x"); } private void bar(String string) {} } }

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.

InnerClassMayBeStatic
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 | Memory

Inspection options

Here you can find the description of settings available for the Inner class may be 'static' inspection, and the reference of their default values.

Ignore if annotated by

[org.junit.jupiter.api.Nested]

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.2, Qodana for JVM 2024.2,

Can be installed with plugin:

Java, 242.22892

Last modified: 11 September 2024