gpt4 book ai didi

java - 使用java的getClasses()方法

转载 作者:行者123 更新时间:2023-12-01 17:27:48 27 4
gpt4 key购买 nike

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


}

最佳答案

getClasses返回当前类中包含的类。您想要找到从当前类继承的类。不幸的是,Java API 中没有方法可以让您执行此操作。

但是,您可以查看加载的类: How can I list all classes loaded in a specific class loader

关于java - 使用java的getClasses()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com