this 표현식이 검사되는 instanceof 또는 getClass() == SomeClass.class의 사용 위치를 보고합니다.
그러한 표현식은 객체 지향 디자인의 실패를 나타내며 다형성 생성으로 바꿔야 합니다.
예:
class Super {
void process() {
if (this instanceof Sub) { // 경고
doSomething();
} else {
doSomethingElse();
}
}
}
class Sub extends Super {}
문제를 수정하려면 재정의 메서드를 사용하세요:
class Super {
void process() {
doSomethingElse();
}
}
class Sub extends Super {
@Override
void process() {
doSomething();
}
}