如何使类可以从不同的包访问,但不能从java中的不同库/ jar访问?

问题描述 投票:0回答:3

我希望我在java中的库/ jar只保持其行为(公开的接口)公开,并希望其余的东西非公开用于外部世界。为了保持代码模块化,我还想使用不同的包。

如何在同一个jar中从不同的包中创建彼此可访问的类,但是不能从jar之外的任何客户端访问它们?

java class jar package access-modifiers
3个回答
1
投票

尽管OSGi使其成为可能,但您无法在普通Java中轻松完成此操作。更好的方法通常是创建一个带有接口的独立API库,让你的“私有”类实现这些接口。然后客户端代码可以使用接口与您的库进行交互,但不需要了解详细信息。


1
投票

你可以使用OSGi。

这是开始了解OSGi更多信息的好地方:http://www.vogella.com/tutorials/OSGi/article.html


0
投票

您可以从您希望维护的公共接口(即proguard)中隐藏所有代码。

混淆你的代码本身并不会使它无法访问,但它会使它很难被利用。

© www.soinside.com 2019 - 2024. All rights reserved.