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();
  }
}