Inspectopedia 2024.3 Help

'instanceof' with incompatible type

Reports instanceof expressions where the expression that is checked has a class/interface type that neither extends/implements the class/interface type on the right-side of the instanceof expression, nor has subclasses that do.

Although it could be intended for e.g. library code, such a construct is likely erroneous, because no instance of any class declared in the project could pass this instanceof test.

Example:

class Foo { } interface Bar { } class Main { void test(Foo f, Bar b) { if (f instanceof Bar) { // problem System.out.println("fail"); } if (b instanceof Foo) { // problem System.out.println("fail"); } } }

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.

InstanceofIncompatibleInterface
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

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.3, Qodana for JVM 2024.3,

Can be installed with plugin:

Java, 243.23126

Last modified: 03 December 2024