此检查不会报告其类来自系统或第三方库的声明。
equals()
方法实现中不会报告转换、instanceof 和局部变量。
此外,clone()
方法实现中不会报告转换。
示例:
interface Entity {}
class EntityImpl implements Entity {}
void processObject(Object obj) {
// 警告:具体类的 instanceof
if (obj instanceof EntityImpl) {
// 警告:转换为具体类,
// 而不是接口
processEntity((EntityImpl)obj);
}
}
// 警告:具体类的形参
void processEntity(EntityImpl obj) {
}
使用忽略抽象类类型选项可以忽略对抽象类的转换。
使用后续选项可控制报告问题的上下文。