无用类型测试¶
ID: java/useless-type-test
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- language-features
- external/cwe/cwe-561
Query suites:
- java-security-and-quality.qls
对于任何类型 B
,派生自 B
的类型的实例始终也是 B
的实例。无需显式测试此关系是否存在。
建议¶
删除不必要的类型测试以简化代码。
示例¶
以下示例显示了一个不必要的类型测试。
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!");
}
}
}