是否可以使用反射在包中获取公共接口和类的集合?

时间:2010-07-17 20:30:58

标签: java reflection

是否可以使用反射获取给定包中的公共接口和类的集合? 问题是针对Java 1.6

为什么: 我有一个包,其中一些类被注释。我想自动收集它们以进行记录

2 个答案:

答案 0 :(得分:3)

不,不可能,至少在一般情况下。这是因为类加载器机制太灵活而不允许它:类可以通过网络加载或动态生成,唯一的操作是“向类加载器询问具有完全限定名称X的类,它将返回类X或抛出异常。您可以轻松地实现一个类加载器,它在任何包中返回任何名称的类,即无限数量的类。

对于通过URLClassLoader从目录或JAR文件加载类的特定情况,可以查看所述目录或JAR文件的内容。

答案 1 :(得分:2)

你真的必须在运行时生成文档吗?使用注释处理工具(APT)的常规方法:http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/apt/GettingStarted.html