2014-10-28 124 views
0

我希望我的庫/ jar在java中只保留其行爲(暴露的接口)公開,並希望外部世界的其他內容不公開。爲了保持代碼模塊化,我也想使用不同的包。如何使類可以從不同的包中訪問,但不能從java中的不同庫/ jar訪問?

我該如何讓相互之間可以從同一個jar中的不同包中訪問類,但不能從jar之外的任何客戶端訪問?

+0

肯定有關/可能重複:http://stackoverflow.com/q/10653919/241291 – cobaltduck 2015-10-13 17:39:13

+0

我可以讓我實現意圖的一部分依賴類作爲內部類。 – 2016-03-03 10:52:56

回答

0

您可以將您的所有代碼保存在您希望維護的公共接口中,即使用proguard

混淆你的代碼本身不會讓它無法訪問,但它會使它很難被利用。

1

儘管OSGi使它成爲可能,但您不能在普通Java中輕鬆完成此操作。更好的方法通常是創建一個帶接口的獨立API庫,並讓您的「私有」類實現這些接口。然後客戶端代碼可以使用這些接口與您的庫進行交互,但不需要知道具體內容。

相關問題