2013-11-23 49 views
1

給定一個java語言包,我想知道它包含了多少個類和它們的列表(這些類的列表)。我如何知道給定包的類

我可以訪問我的包myClass1.class.getPackage()但畢竟這我有像getClasses()size()lenghtClassesCount()一些事情。

謝謝

+0

你必須寫自己爲 – svz

回答

1

看看的reflections庫可能允許輕鬆實現:

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

我想你可以代替SomeType使用Object的對象是超類中的所有類的在Java中:

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

在Java中,類是動態加載的。所以沒有辦法做你想做的事情;虛擬機本身並不知道包內類的完整列表。

+0

類加載器,但是當我編程,我寫了'myPackage.'後寫點(。)我有所有類的列表,但不是當我寫'myClass.class,getPackage()' – RiadSaadi

+0

正確。你的開發環境知道所有的類是什麼;它必須,因爲它需要編譯它們。但是除非你明確地表明,否則這些信息並不適用於程序本身。 –

1
+0

對不起,我看到第一個和第二個不完全像我的,但最後一個是。該怎麼辦?我應該刪除這個問題嗎? – RiadSaadi

+0

@RiadSaadi我認爲你不應該刪除在這篇文章中已經有很多有用的專家評論。 –

+0

@SantoshJoshi如你所知,這是其他問題的重複,所以你不應該作爲回答發佈。 – 2013-11-23 16:37:34

相關問題