我正在寻找有关 getClasses() 工作原理的一些说明。我正在尝试编写代码,给定一个字符串类名,查找所有扩展类名指定的类的类。我有一个名为 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;
}
}