2013-11-22 167 views
1

我有一個項目P1,它有一個A.B.C包,裏面有一個MyClass1類。這個類有默認範圍。因此,它在項目P1中的任何其他包中都不可見,並且對於其他任何項目都是不可見的。在不同的項目中使用相同的java包

但是,如果我創建另一個包含同名A.B.C的項目P2,則可以訪問類MyClass1。這聽起來很糟糕,因爲任何想使用未暴露的API的人都可以創建一個具有相同名稱的包並獲得訪問權限。

這是預期的行爲?

-

另一個相關的問題:有什麼用Java項目的水平範圍是什麼?

+0

號你爲什麼要這麼做? – 2013-11-22 14:03:31

+0

@LutzHorn在我的項目中,一個包幾乎沒有作爲API的一部分公開的文件。爲了管理文件的數量,我嘗試將一些文件移動到另一個軟件包。但是這要求這些類(以前未公開)公開,這會稀釋我的API。 我正在使用Eclipse Juno – user673218

回答

5

這是預期的行爲?

是。這就是爲什麼你不能用java.*來命名你的包。

Java中是否有任何項目級作用域?

+0

'是的。這就是爲什麼你不能用java命名你的軟件包。*' 但是我可以在項目P2中創建一個包A.B.C並訪問MyClass。任何方式,我可以限制嗎? – user673218

+1

@ user673218我不這麼認爲。只有'java'包是受限制的。 –

相關問題