나는 후보 객체가 '흥미로운'지를 결정하기 위해 클래스의 배열을 반복하려합니다. A, B, C, D에는 적절한 부모 클래스가 없습니다 (형제이지만 모든 형제가 재미있는 것은 아닙니다). 부모 클래스를 추가 할 수 없으며 A, B, C, D를 수정할 수 없습니다. 아래와 같은 것을하고 싶지만 구문이 유효하지 않습니다.instanceof를 사용하여 클래스 [] 비교 반복하려고 시도
private static final Class[] types = { A.class, B.class, C.class, D.class};
....
void method(Object cand) {
for (Class c : types) {
if (cand instanceof c) {//cand is interesting, but c isn't type
((c) cand).methodInInterestingClasses();
}
}
}
Nit : 원시 형식을 사용하지 마십시오. 'Class []'대신'List>'를 사용하십시오. –
동의. 가장 빠른 데모 데모. – Gary