getClasses()가 어떻게 작동하는지에 대한 명확한 설명을 찾고 있습니다. String classname을 지정하면 classname에 지정된 클래스를 확장하는 모든 클래스를 찾는 코드를 작성하려고합니다. 이 작업을 수행하는 getChildren() 메서드가 있습니다. 불행히도, 내가 그것을 호출 할 때마다 메소드는 빈 Collection을 리턴한다. 여기 내 코드가있다.자바의 getClasses() 메소드 사용하기
import java.util.ArrayList;
import java.util.Collection;
public class ClassFinder {
private Class<?> myClass;
public ClassFinder(Class<?> clazz) {
myClass = clazz;
}
public ClassFinder (String className) throws ClassNotFoundException {
myClass = Class.forName(className);
}
public Collection<Class<?>> getChildren() {
Collection<Class<?>> children = new ArrayList<Class<?>>();
Class<?>[] relatedClasses = myClass.getClasses();
for (Class<?> potentialChild : relatedClasses) {
if (potentialChild.isAssignableFrom(myClass)) {
children.add(potentialChild);
}
}
return children;
}
}
체크 아웃, 플러그인 프레임 워크의 일종을 작성하려고하는 경우 [java.util.ServiceLoader] (http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader. html)이 문제를 처리하는 더 좋은 방법입니다. – jtahlborn