반응형
실행 시 하나의 Java 클래스가 다른 클래스를 확장하는지 테스트하려면 어떻게 해야 합니까?
테스트 방법a
의 하위 클래스입니다.b
?
Class<?> a = A.class;
Class<?> b = B.class;
다음을 원하십니까?
Super.class.isAssignableFrom(Sub.class)
당신이 알고 싶은 것은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
직접 슈퍼클래스/서브클래스 관계를 확인하고 싶은 경우 Tim도 이에 대한 답변을 제공했습니다.
궁금하시죠?b
에서 할당할 수 있습니다. a
:
b.isAssignableFrom(a);
게다가 그것을 알고 싶다면a
의 직접 하위 클래스입니다.b
:
a.getSuperclass().equals(b);
언급URL : https://stackoverflow.com/questions/3504870/how-to-test-if-one-java-class-extends-another-at-runtime
반응형
'programing' 카테고리의 다른 글
정적 변수는 C 및 C++ 어디에 저장됩니까? (0) | 2022.08.14 |
---|---|
사용하지 않는 기능에 대해 경고를 받을 수 있는 방법이 있습니까? (0) | 2022.08.14 |
onSnapshot에서 검출되지 않은 오류: 오류: signOut()에 대한 권한이 없거나 부족합니다. (0) | 2022.08.14 |
왜 Java의 Iterator는 반복가능하지 않은가? (0) | 2022.08.14 |
문자열에서 단일 문자를 제거하는 방법 (0) | 2022.08.14 |