OSGi:获取包中的类列表
是否可以找到给定包中的所有类或接口?在“纯 Java”中没有简单的方法可以做到这一点,但 OSGi 可能做得更好,不是吗?
Is it possible to find all classes or interfaces in a given package? There is no simple way to do it in "plain Java", but OSGi probably does a better job, doesn't it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从 4.3 开始,答案是肯定的。添加了新的 API:
BundleWiring.listResources(String path, String filePattern, int options)
可以使用扫描包的类路径。使用适当的参数,您可以获得包中所有类的名称。
The answer is yes starting in 4.3. A new API has been added:
BundleWiring.listResources(String path, String filePattern, int options)
which can be used to scan the class path of a bundle. With the appropriate parameters, you can get the names of all the classes in a package.
简而言之:不。OSGi 通过在需要时提供类来扩展 Java 类加载机制,但没有 API 允许您检查给定包中哪些类可用。
In short: No. OSGi extends the Java classloading mechanism by providing classes when they are needed, but there is no API that allows you to inspect which classes are available in a given package.