Inspectopedia 2025.2 Help

Chain of 'instanceof' checks

Reports any chains of if-else statements all of whose conditions are instanceof expressions or class equality expressions (e.g. comparison with String.class). Such constructions usually indicate a failure in object-oriented design which dictates that such type-based dispatch should be done via polymorphic method calls rather than explicit chains of type tests.

Example:

double getArea(Shape shape) { // Warning: abstraction failure. // It would be better to declare a getArea() // abstract method in the shape interface // and implement it in every inheritor. if (shape instanceof Point) { return 0; } if (shape instanceof Circle) { return Math.PI * Math.pow(((Circle) shape).radius(), 2); } if (shape instanceof Rectangle) { return ((Rectangle) shape).width() * ((Rectangle) shape).height(); } throw new IllegalArgumentException(); }

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.

ChainOfInstanceofChecks
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 | Abstraction issues

Use the checkbox below to ignore instanceof expressions on library classes.

Inspection options

Here you can find the description of settings available for the Chain of 'instanceof' checks inspection, and the reference of their default values.

Ignore instanceof on library classes

Default value:

Not selected

Suppressing Inspection

You can suppress this inspection by placing the following comment marker before the code fragment where you no longer want messages from this inspection to appear:

//noinspection ChainOfInstanceofChecks

More detailed instructions as well as other ways and options that you have can be found in the product documentation:

Inspection Details

By default bundled with:

IntelliJ IDEA 2025.2, Qodana for JVM 2025.2,

Last modified: 18 September 2025