답변:
Class
확장이 다른 확장 인지 여부를 알고 싶다면 Class # isAssignableFrom (Class)를 사용하십시오 . 예를 들면 다음과 같습니다.
if(B.class.isAssignableFrom(A.class)) { ... }
인스턴스가 특정 유형인지 여부에 관심이있는 경우 다음을 사용하십시오 instanceof
.
A obj = new A();
if(obj instanceof B) { ... }
true
클래스 / 인스턴스가 유형 계층의 멤버이고 직접적인 수퍼 클래스 / 서브 클래스 관계에 제한적이지 않은 경우 반환 됩니다. 예를 들면 다음과 같습니다.
// if A.class extends B.class, and B.class extends C.class
C.class.isAssignableFrom(A.class); // evaluates to true
// ...and...
new A() instanceof C; // evaluates to true