私は Java で非常に単純なライブラリを構築しています。これは単一の Jar にパッケージ化されます。1 つのクラスのみを公開する必要があります: World. World クラスは、同じパッケージ ( com.yannbane.a
) にある Block クラスのサブクラスを使用し、それ自体は多くの機能を提供しませんが、拡張する必要があります。com.yannbane.a.blocks
すべてのブロック タイプ (サブクラス) を含む別のパッケージ を作成する予定でした。
したがって、ディレクトリ/パッケージ構造は次のようになります。
com/
yannbane/
a/
World.java
Block.java
blocks/
Brick.java
Stone.java
ただし、Block のサブクラスが実際に Block クラスを拡張するためには、Block クラスを作成する必要がありましたpublic
。これは、Jar ファイルで 1 つのクラス World のみを公開するという私の目標を台無しにします。また、サブクラスを公開して、世界が使用できるようにする必要もあります。
このパッケージとディレクトリ構造を保持しながら、Jar が World クラスのみを公開し、他のクラスは公開しないようにするにはどうすればよいですか?