子包之间的Java私有类

noa*_*mtm 3 java oop

我的Java库由几个子包组成(com.example.lib.api,com.example.lib.imp,com.example.lib.util,...).

中的类api使用类A和B,从imp.imp使用C 类的类util.我不得不做A,BC公开的,但是我不想让他们暴露在我的库的用户.没有隐藏任何东西,我的库是开源的,但最小的API更容易理解.

有办法解决吗?

Pet*_*rey 6

在Java 9中,您将能够控制从JAR导出的包.通过这种方式,您可以将其公开,但其他任何人都无法使用.

现在你无法控制它.您要么将所有内容放在一个包中,要么依赖文档来明确它们不应该被使用.例如,jdk.internal假设任何人都不应使用这些除了JDK.