Inspectopedia Help

'instanceof' check for 'this'

Reports usages of instanceof or getClass() == SomeClass.class in which a this expression is checked.

Such expressions indicate a failure of the object-oriented design, and should be replaced by polymorphic constructions.

Example:

class Super { void process() { if (this instanceof Sub) { // warning doSomething(); } else { doSomethingElse(); } } } class Sub extends Super {}

To fix the problem, use an overriding method:

class Super { void process() { doSomethingElse(); } } class Sub extends Super { @Override void process() { doSomething(); } }

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024