2011-06-23 24 views
0

我有一組我想封裝在jar文件中的類。但只有少數這些類別應該對用戶「可見」。我的意思是,我希望這些課程是公開的,其餘的是私人的。但是,當我使用廣播接收器的默認「受保護」可見性併發送來自不同包的意圖時,它會給我一個IllegalAccessException。關於如何實現這一點的任何提示?如何在jar中隱藏用戶的幾個文件?

回答

0

class應該是私人或「隱藏」的唯一時間是當它是一個內部類。如果您試圖阻止其他人利用您的類資源,則可以關閉該修飾符(私有,公共,受保護),這將使類包受到保護(當不存在修飾符時爲默認值)。

例如,這類只能通過類在同一包看出:

package com.test; 

class Test { 

} 

在哪裏,因爲這類將是包以外訪問:

package com.test; 

public class Test { 

} 

然而,在這種情況下,另一個人可以使用包名稱com.test並可以使用你的班級。

如果您想嚴格控制類的使用方式,可以將它們標記爲public final。這將使你的課程無法擴展。然後,您可以使構造函數爲私有的,以便該類不能實例化。如果你這樣做,你可能會想要返回你正在處理的類的新對象的方法static

如果你打算髮布jar,你只需要處理這個問題。但是有很多選項(如上所述)可以幫助您創建一個有用的代碼庫。