我正在用Java构建一个非常简单的库,它将打包在一个Jar中.它应该只暴露一个类:世界. World类使用Block类的子类,它位于同一个包(com.yannbane.a)中,并且本身不提供很多功能,但需要进行扩展.我计划创建另一个包com.yannbane.a.blocks,它将包含所有块类型(子类).
因此,目录/包结构应如下所示:
com/
yannbane/
a/
World.java
Block.java
blocks/
Brick.java
Stone.java
但是,为了使Block的子类实际扩展Block类,我需要将Block类设为public.这破坏了我的目标,即让Jar文件只暴露一个类World.我还需要将子类公开,以便World可以使用它们.
我如何保留这个包和目录结构,但仍然让我的Jar只公开World类,而不是其他类?
最佳答案