我正在开发一个Java库。为了在内部组织事情,我将我的课程分为 2 个包:A 和 B。我只想向库用户公开包 A 中的一些类。但在内部,我需要从包 A 访问包 B 中的一些类。
如何在不向库用户公开包 B 中的类的情况下执行此操作?如果我将它们设置为包私有,我自己无法从 A 访问它们。如果我将它们公开,则图书馆用户可以看到它们。
我是否必须将库中的所有代码放在一个大包中,以便我可以访问内部包私有类?
通常这是用不同的罐子完成的。一个 jar 将包含最终用户需要使用的类的 A 包。其他 jar 将包含您的 A 类将依赖的类。这通常是使用 Maven 等工具完成的。一个很好的例子是使用Apache公共库。您可以将它们导入到类中,但不需要将它们包含在 jar 中。您可以简单地让 Maven 在运行时需要它们。