2012-05-10 43 views
1

在Eclipse中,我注意到如果我在名爲「com.johnhoffman.myproject」的我的「src」文件夾中創建一個包,並且在另一個名爲「test」的源文件夾中也包含此名稱的包,則「test 「源文件夾可以訪問我的」src「文件夾中的類。如何使用同名軟件包授予我對另一個源文件夾文件的訪問權限?

這是爲什麼?即使兩個軟件包具有相同的名稱,它們仍然是不同的軟件包,對不對?因此,爲什麼一個包能夠訪問另一個呢?

回答

2

在這種情況下,它們是相同的包。

路徑的「src」部分未包含在軟件包名稱中,也不是「測試」。 Eclipse只使用它來區分哪些類用於測試等。

例如,當您的測試類想要打印程序包可訪問的信息以進行調試而不使用反射(可能非常麻煩)時,這非常有用。

+0

謝謝!什麼是反思? –

+0

JavaTut「反射」徑:http://docs.oracle.com/javase/tutorial/reflect/index.html – Riking

+0

基本上,您可以編輯與類,方法和字段相關的所有東西。例如,您可以使用Field.setAccessible()將Field中的任何私有字段設爲public,然後使用Field.get()(假設它不是原語)。 – Riking

2

如果他們是在同一個類路徑,那麼他們在同一個包,如果它們具有相同的包名

相關問題