2014-10-28 80 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库,并让您的“私有”类实现这些接口。然后客户端代码可以使用这些接口与您的库进行交互,但不需要知道具体内容。

相关问题