getClasses()がどのように機能するかについての説明を探しています。String classnameを指定すると、classnameで指定されたクラスを拡張するすべてのクラスを検索するコードを記述しようとしています。これを行うgetChildren()というメソッドがあります。残念ながら、呼び出すたびに、メソッドは空のコレクションを返します。これが私のコードです。
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;
}
}