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