gpt4 book ai didi

java - 你能使用反射找到包中的所有类吗?

转载 作者:行者123 更新时间:2023-12-02 00:42:00 25 4
gpt4 key购买 nike

是否可以找到给定包中的所有类或接口(interface)? (快速查看例如 Package ,看起来好像没有。)

最佳答案

由于类加载器的动态特性,这是不可能的。类加载器不需要告诉VM它可以提供哪些类,相反,它们只是传递对类的请求,并且必须返回一个类或抛出异常。

但是,如果您编写自己的类加载器,或者检查类路径及其 jar,则可以找到此信息。但这将通过文件系统操作进行,而不是反射。甚至可能有一些库可以帮助您做到这一点。

如果存在远程生成或传递的类,您将无法发现这些类。

通常的方法是在某个文件中注册您需要访问的类,或者在不同的类中引用它们。或者在命名时只使用约定。

附录:The Reflections Library将允许您在当前类路径中查找类。它可用于获取包中的所有类:

 Reflections reflections = new Reflections("my.project.prefix");

Set<Class<? extends Object>> allClasses =
reflections.getSubTypesOf(Object.class);

关于java - 你能使用反射找到包中的所有类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931816/

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