ID: java/useless-type-test Kind: problem Security severity: Severity: warning Precision: very-high Tags: - quality - maintainability - useless-code - language-features - external/cwe/cwe-561 Query suites: - java-code-quality.qls - java-security-and-quality.qls
Click to see the query in the CodeQL repository
It is always the case that, for any type B, an instance of a type derived from B is also an instance of B. There is no need to explicitly test that this relationship exists.
Recommendation¶
Remove the unnecessary type test to simplify the code.
Example¶
The following example shows an unnecessary type test.
public class UselessTypeTest { private static class B {} private static class D extends B {} public static void main(String[] args) { D d = new D(); if(d instanceof B) { // violation System.out.println("Mon dieu, d is a B!"); } } }