'instanceof' with incompatible interface
Reports instanceof
expressions where the compared type is an interface, and the compared expression has a class type that neither implements the compared interface, nor has any visible subclasses which implement the compared interface.
Although that might be intended, normally such a construct is most likely an error, where the resulting instanceof
expression always evaluates to false
.
Example:
interface I1 {}
interface I2 {}
interface I3 extends I1 {}
static class Sub1 implements I1 {}
static class Sub2 extends Sub1 implements I2 {
void test(Sub1 sub1) {
if (sub1 instanceof I3) { // here 'I3' is incompatible interface
}
}
}
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023