モジュール java.base
パッケージ java.lang.module

インタフェースModuleReader

すべてのスーパー・インタフェース:
AutoCloseable, Closeable

public interface ModuleReader extends Closeable
モジュールのコンテンツへのアクセスを提供します。

モジュール・リーダーは、モジュールがロードされているかどうかに関係なく、モジュール内のリソースへのアクセスが必要な場合を対象としています。 たとえば、ファイル・システム上のパッケージ・モジュールのコレクションをスキャンするフレームワークでは、モジュール・リーダーを使用して、各モジュール内の特定のリソースにアクセスできます。 モジュール・リーダーは、モジュールからクラスおよびリソースをロードするClassLoader実装でも使用されます。

モジュール内のリソースは、/で区切られたパス文字列である抽象名で識別されます。 たとえば、モジュールjava.baseには、通常、java.lang.Objectのクラス・ファイルであるリソース"java/lang/Object.class"がある場合があります。 モジュール・リーダーは、モジュール・コンテンツのディレクトリをリソース(モジュール・リーダー固有かどうか)として扱います。 モジュール・コンテンツにリソースとして配置できるディレクトリが含まれている場合、その名前はスラッシュ('/')で終わります。 ディレクトリは、末尾のスラッシュを削除する名前で配置することもできます。

ModuleReaderは作成時にopenで、closeメソッドを呼び出して閉じます。 モジュール・リーダーのクローズに失敗すると、リソース・リークが発生する可能性があります。 try-with-resources文は、モジュール・リーダーを閉じるために役立つ構成を提供します。

ModuleReader実装では、モジュール内のリソースにアクセスする権限が必要になる場合があります。 したがって、findopenreadおよびlistメソッドは、セキュリティ・マネージャによってアクセスが拒否された場合に SecurityExceptionをスローすることがあります。

実装要件:
ModuleReaderの実装は、抽象リソース名をパッケージ・モジュールまたはファイル・システム内のリソースのロケーションに変換する際に十分に注意する必要があります。 実装では、...などの要素、ファイル・セパレータを含む要素または空の要素を"見つかりません"として扱うことをお薦めします。 より一般的には、リソース名がlistメソッドが返す要素のストリームにない場合は、不整合を回避するために、リソースを"見つかりません"として処理する必要があります。
導入されたバージョン:
9
関連項目: