我怎么知道给定包的类

时间:2013-11-23 16:16:31

标签: java class size package

给定一个java语言的包,我想知道它包含多少个类及其列表(这些类的列表)。

我可以使用myClass1.class.getPackage()访问我的软件包,但在此之后我 getClasses()size()lenght之类的内容或ClassesCount()

谢谢

3 个答案:

答案 0 :(得分:1)

在Java中,类是动态加载的。所以根本没办法做你想做的事;虚拟机本身不知道包中的完整类列表。

答案 1 :(得分:1)

答案 2 :(得分:1)

查看可能允许轻松实现此目的的reflections库:

Reflections reflections = new Reflections("my.project.prefix");
Set<Class<? extends SomeType>> subTypes = 
           reflections.getSubTypesOf(SomeType.class);

我猜你可以使用Object代替SomeType,因为Object是java中所有类的超类:

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