어떻게하면 COMPILE 시간에 확인할 수 있습니까? classType이 추상 형식을 가리 킵니까? 런타임 검사를 수행 할 수 있습니다 : 같은 컴파일 시간에 수행 될 수자바 추상 형식 클래스 컴파일 시간 검사
void foo(Class<? extends SubType> classType) {
Modifier.isAbstract(classType.getModifiers());
}
foo(AbstractType.class); // this should pass
foo(NotAbstractType.class); // this should fail
경우?
는 당신이 우리에게 당신이 컴파일시에 유형을 확인하려는 이유를 알려 주시기 바랍니다 수 :
는 주석은, 처리에이 질문을 참조하십시오? 런타임에 형식을 찾는 것이 대부분의 프로그래머가 염려하는 것입니다. (오버라이드 된 메서드가 아닌) 많은 특정 메서드가있는 다른 구현이있을 수 있기 때문에 –
메서드는 전용 멤버에서이 형식의 개체를 찾기 위해 형식 정보가 필요합니다. 그 추상적 인 하위 클래스 유형은 구현 그 자체가 아닌 가능한 구현 그룹을 정의해야하므로 인수가 추상 유형인지 컴파일 시간 확인을 통해 사용 실수를 막을 수 있습니다. – lietus