- すべての実装されたインタフェース:
Comparable<ModuleDescriptor>
モジュール記述子は、名前付きモジュールを記述し、その各コンポーネントを取得するメソッドを定義します。 Java仮想マシン内の名前付きモジュールのモジュール記述子は、Module
のgetDescriptor
メソッドを呼び出すことによって取得されます。 モジュール記述子は、ModuleDescriptor.Builder
クラスを使用するか、ここで定義したread
メソッドを使用してモジュール宣言(module-info.class
)のバイナリ形式を読み取ることによって作成することもできます。
モジュール記述子は、normal、openまたはautomaticモジュールを記述します。 「ノーマル」モジュールおよびオープン・モジュールでは、「依存関係」、exported-packages
、useまたは「提供」が提供するサービス、およびその他のコンポーネントについて説明します。 「ノーマル」モジュールは、open固有のパッケージの場合があります。 オープン・モジュールのモジュール記述子はオープン・パッケージ(そのopens
メソッドは空のセットを返します)を宣言しませんが、Java仮想マシンでインスタンス化すると、すべてのパッケージがオープンしているかのように扱われます。 自動モジュールのモジュール記述子では、依存関係( java.base
の必須の依存関係を除いて)は宣言されず、エクスポートされたパッケージまたはオープン・パッケージは宣言されません。 自動モジュールは、構成内の他のすべてのモジュールを読み取るために、解決中に特別な処理を受け取ります。 自動モジュールがJava仮想マシンでインスタンス化されると、名前のないすべてのモジュールが読み取られ、すべてのパッケージがエクスポートされて開かれているかのように処理されます。
ModuleDescriptor
オブジェクトは不変であり、複数の同時スレッドで使用しても安全です。
- 導入されたバージョン:
- 9
- 関連項目:
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static final class
ModuleDescriptor
オブジェクトをビルドするためのビルダー。static final class
モジュールによってエクスポートされたパッケージは、修飾または修飾されていない場合があります。static enum
モジュール上の修飾子。static final class
モジュールによって開かれたパッケージは、修飾または修飾されていない場合があります。static final class
モジュールが1つ以上の実装を提供するサービス。static final class
モジュールへの依存性。static final class
モジュールのバージョン文字列。 -
メソッドのサマリー
修飾子と型メソッド説明「モジュール・フラグ」のセットを返します。int
compareTo
(ModuleDescriptor that) このモジュール記述子を別のモジュール記述子と比較します。boolean
このモジュール記述子が、指定されたオブジェクトと等しいかどうかをテストします。exports()
エクスポートされたパッケージを表すExports
オブジェクトのセットを返します。int
hashCode()
このモジュール記述子のハッシュ・コードを計算します。boolean
これが自動モジュールの場合は、true
を返します。boolean
isOpen()
オープン・モジュールの場合は、true
を返します。モジュール・メイン・クラスを返します。モジュール修飾子のセットを返します。name()
モジュール名を返します。static ModuleDescriptor.Builder
newAutomaticModule
(String name) ビルダーをインスタンス化して、自動モジュールのモジュール記述子を作成します。static ModuleDescriptor.Builder
normalモジュールのモジュール記述子を構築するビルダーをインスタンス化します。static ModuleDescriptor.Builder
newModule
(String name, Set<ModuleDescriptor.Modifier> ms) ビルダーをインスタンス化してモジュール記述子を作成します。static ModuleDescriptor.Builder
newOpenModule
(String name) ビルダーをインスタンス化して、オープン・モジュールのモジュール記述子を作成します。opens()
オープン・パッケージを表すOpens
オブジェクトのセットを返します。packages()
モジュール内のパッケージのセットを返します。provides()
モジュールが提供するサービスを表すProvides
オブジェクトのセットを返します。おそらく解析不能なバージョンのモジュールを含む文字列を返します。static ModuleDescriptor
read
(InputStream in) モジュール宣言のバイナリ形式を入力ストリームからモジュール記述子として読み取ります。static ModuleDescriptor
read
(InputStream in, Supplier<Set<String>> packageFinder) モジュール宣言のバイナリ形式を入力ストリームからモジュール記述子として読み取ります。static ModuleDescriptor
read
(ByteBuffer bb) モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。static ModuleDescriptor
read
(ByteBuffer bb, Supplier<Set<String>> packageFinder) モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。requires()
モジュールの依存関係を表すRequires
オブジェクトのセットを返します。モジュール名とそのバージョン(存在する場合)を含む文字列を返します。toString()
モジュールを記述する文字列を返します。uses()
サービス依存関係のセットを返します。version()
モジュールのバージョンを返します。
-
メソッドの詳細
-
name
public String name()モジュール名を返します。
- 戻り値:
- モジュール名
-
modifiers
public Set<ModuleDescriptor.Modifier> modifiers()モジュール修飾子のセットを返します。
- 戻り値:
- おそらく空の変更不可能な修飾子のセット
-
accessFlags
public Set<AccessFlag> accessFlags()「モジュール・フラグ」のセットを返します。- 戻り値:
- 変更不可能なモジュール・フラグのセットが空である可能性があります
- Java Virtual Machine仕様を参照してください:
-
「4.7.25 モジュール属性」
- 導入されたバージョン:
- 20
- 関連項目:
-
isOpen
public boolean isOpen()- 戻り値:
true
オープン・モジュールの場合
-
isAutomatic
public boolean isAutomatic()- 戻り値:
true
これが自動モジュールの場合
-
requires
public Set<ModuleDescriptor.Requires> requires()モジュールの依存関係を表す
Requires
オブジェクトのセットを返します。セットには、このモジュールの名前が"
java.base
"でない場合の"java.base
"への依存が含まれています。 このモジュールが自動モジュールである場合、"java.base
"以外のモジュールには依存しません。- 戻り値:
ModuleDescriptor.Requires
オブジェクトの、おそらく空の変更不可能なセット
-
exports
public Set<ModuleDescriptor.Exports> exports()エクスポートされたパッケージを表す
Exports
オブジェクトのセットを返します。このモジュールが自動モジュールの場合、エクスポート・セットは空です。
- 戻り値:
- エクスポートされたパッケージのおそらく空の変更不可能なセット
-
opens
public Set<ModuleDescriptor.Opens> opens()オープン・パッケージを表す
Opens
オブジェクトのセットを返します。このモジュールがオープン・モジュールまたは自動モジュールの場合、オープン・パッケージのセットは空です。
- 戻り値:
- 可能な限り空の変更不可能なオープン・パッケージのセット
-
uses
サービス依存関係のセットを返します。
このモジュールが自動モジュールの場合、サービス依存関係のセットは空です。
- 戻り値:
- 使用されているサービス型の完全修飾クラス名の、おそらく空の変更不可能なセット
-
provides
public Set<ModuleDescriptor.Provides> provides()モジュールが提供するサービスを表す
Provides
オブジェクトのセットを返します。- 戻り値:
- このモジュールが提供するサービスの、おそらく空の変更不可能なセット
-
version
public Optional<ModuleDescriptor.Version> version()モジュールのバージョンを返します。
- 戻り値:
- このモジュールのバージョン、またはモジュールにバージョンがないか、バージョンがunparseableの場合は空の
Optional
-
rawVersion
おそらく解析不能なバージョンのモジュールを含む文字列を返します。
- 戻り値:
- モジュールのバージョンを含む文字列、またはモジュールにバージョンがない場合は空の
Optional
- 関連項目:
-
toNameAndVersion
public String toNameAndVersion()モジュール名とそのバージョン(存在する場合)を含む文字列を返します。
- 戻り値:
- モジュール名とそのバージョン(存在する場合)を含む文字列
-
mainClass
モジュール・メイン・クラスを返します。
- 戻り値:
- モジュールのメイン・クラスの完全修飾クラス名
-
packages
モジュール内のパッケージのセットを返します。パッケージのセットには、すべてのエクスポート・パッケージとオープン・パッケージ、すべてのサービス・プロバイダのパッケージ、およびメイン・クラスのパッケージが含まれます。
- 戻り値:
- おそらく空の、モジュール内のパッケージの変更不可能なセット
-
compareTo
public int compareTo(ModuleDescriptor that) このモジュール記述子を別のモジュール記述子と比較します。2つの
ModuleDescriptor
オブジェクトは、モジュール名を辞書順に比較することによって比較されます。 モジュール名が等しい場合、モジュールのバージョンが比較されます。 モジュール・バージョンを比較する場合、モジュール記述子とバージョンがバージョンを持たないモジュール記述子が成功するとみなされます。 両方のバージョンがunparseableの場合、「生バージョンの文字列」は辞書順で比較されます。 モジュール名が等しく、バージョンが(または両方に存在しない)の場合、修飾子のセットが比較されます。 修飾子のセットは、各セットに対して計算された「バイナリ値」を比較することによって比較されます。 修飾子がセットに存在する場合、その序数位置のビットはバイナリ値の1
、それ以外の場合は0
です。 2組の修飾語が同じ場合、equals
と一貫性のある方法で、モジュール記述子の他のコンポーネントが比較されます。- 定義:
- インタフェース
Comparable<ModuleDescriptor>
内のcompareTo
- パラメータ:
that
- 比較するモジュール記述子- 戻り値:
- このモジュール記述子が指定されたモジュール記述子より小さい、等しい、または大きい場合は、負の整数、ゼロ、または正の整数
-
equals
public boolean equals(Object ob) このモジュール記述子が、指定されたオブジェクトと等しいかどうかをテストします。指定されたオブジェクトが
ModuleDescriptor
でない場合、このメソッドはfalse
を返します。 対応する各コンポーネントが等しい場合は、2つのモジュール記述子が等しくなります。このメソッドは
Object.equals
メソッドの汎用規約を満たします。 -
hashCode
public int hashCode()このモジュール記述子のハッシュ・コードを計算します。ハッシュ・コードは、モジュール記述子のコンポーネントに基づいており、
Object.hashCode
メソッドの一般規約を満たしています。 -
toString
public String toString()モジュールを記述する文字列を返します。
-
newModule
public static ModuleDescriptor.Builder newModule(String name, Set<ModuleDescriptor.Modifier> ms) ビルダーをインスタンス化してモジュール記述子を作成します。- パラメータ:
name
- モジュール名ms
- モジュール修飾子のセット- 戻り値:
- 新しいビルダー
- 例外:
IllegalArgumentException
- モジュール名がnull
であるか、有効なモジュール名でない場合、または修飾子のセットに他の修飾子を含むAUTOMATIC
が含まれている場合
-
newModule
public static ModuleDescriptor.Builder newModule(String name) - パラメータ:
name
- モジュール名- 戻り値:
- 新しいビルダー
- 例外:
IllegalArgumentException
- モジュール名がnull
であるか、正当なモジュール名ではない
-
newOpenModule
public static ModuleDescriptor.Builder newOpenModule(String name) ビルダーをインスタンス化して、オープン・モジュールのモジュール記述子を作成します。 このメソッドは、OPEN
修飾子を使用してnewModule
を呼び出すのと同等です。オープン・モジュールのビルダーは、オープン・パッケージの宣言には使用できません。
- パラメータ:
name
- モジュール名- 戻り値:
- 開いているモジュールを構築する新しいビルダー
- 例外:
IllegalArgumentException
- モジュール名がnull
であるか、正当なモジュール名ではない
-
newAutomaticModule
public static ModuleDescriptor.Builder newAutomaticModule(String name) ビルダーをインスタンス化して、自動モジュールのモジュール記述子を作成します。 このメソッドは、AUTOMATIC
修飾子を使用してnewModule
を呼び出すのと同等です。自動モジュールのビルダーは、モジュールまたはサービスの依存関係の宣言には使用できません。 また、エクスポートされたパッケージまたは開いているパッケージの宣言には使用できません。
- パラメータ:
name
- モジュール名- 戻り値:
- 自動モジュールを構築する新しいビルダー
- 例外:
IllegalArgumentException
- モジュール名がnull
であるか、正当なモジュール名ではない- 関連項目:
-
read
public static ModuleDescriptor read(InputStream in, Supplier<Set<String>> packageFinder) throws IOException モジュール宣言のバイナリ形式を入力ストリームからモジュール記述子として読み取ります。入力ストリームでエンコードされた記述子がモジュール内のパッケージのセットを示していない場合、
packageFinder
が呼び出されます。packageFinder
が返すパッケージのセットには、モジュールがエクスポート、開くすべてのパッケージ、およびモジュールが提供するサービス実装のパッケージ、およびメイン・クラス(モジュールにメイン・クラスがある場合)のパッケージが含まれている必要があります。packageFinder
がUncheckedIOException
をスローすると、IOException
の原因が再スローされます。モジュール記述子の後ろにバイトがある場合、そのバイトが
InvalidModuleDescriptorException
として読み取られたり、無視されたり、レポートされたりするかどうかに関する実装固有です。 このメソッドがInvalidModuleDescriptorException
またはIOException
で失敗した場合は、入力ストリームから一部のバイト(すべてではない)が読み取られた後で失敗する可能性があります。 例外が発生した場合は、ストリームをすぐに閉じ、破棄することを強くお勧めします。- APIのノート:
packageFinder
パラメータは、パッケージ・セットを記述子自体に記録しないレガシー・モジュール・アーティファクト形式からモジュール記述子を読み取る場合に使用します。- パラメータ:
in
- 入力ストリームpackageFinder
- パッケージのセットを作成できるサプライヤ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合、またはpackageFinder
によって返されたパッケージのセットに、モジュール記述子から取得されたすべてのパッケージが含まれていない場合IOException
- 入力ストリームからの読取りでI/Oエラーが発生した場合、またはパッケージ・ファインダによってUncheckedIOException
がスローされた場合
-
read
public static ModuleDescriptor read(InputStream in) throws IOException モジュール宣言のバイナリ形式を入力ストリームからモジュール記述子として読み取ります。 このメソッドは、2-argread
メソッドで指定されたとおりに機能します。ただし、ストリームから読み取られたモジュール記述子がパッケージのセットを示していない場合、パッケージ・ファインダを使用して追加のパッケージを検索することはありません。- パラメータ:
in
- 入力ストリーム- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合IOException
- 入力ストリームからの読取りでI/Oエラーが発生した場合
-
read
public static ModuleDescriptor read(ByteBuffer bb, Supplier<Set<String>> packageFinder) モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。バイト・バッファでエンコードされた記述子がモジュール内のパッケージのセットを示していない場合、
packageFinder
が呼び出されます。packageFinder
が返すパッケージのセットには、モジュールがエクスポート、開くすべてのパッケージ、およびモジュールが提供するサービス実装のパッケージ、およびメイン・クラス(モジュールにメイン・クラスがある場合)のパッケージが含まれている必要があります。packageFinder
がUncheckedIOException
をスローすると、IOException
の原因が再スローされます。モジュール記述子は、索引
p
からバッファから読み取られます。このメソッドが呼び出されると、p
はバッファposition
になります。 戻されると、バッファの位置はp + n
と等しくなります。ここで、n
はバッファから読み取られたバイト数です。モジュール記述子の後ろにバイトがある場合、そのバイトが
InvalidModuleDescriptorException
として読み取られたり、無視されたり、レポートされたりするかどうかに関する実装固有です。 このメソッドがInvalidModuleDescriptorException
で失敗した場合は、一部のバイト(すべてではない)が読み取られた後で失敗する可能性があります。- APIのノート:
packageFinder
パラメータは、パッケージ・セットを記述子自体に記録しないレガシー・モジュール・アーティファクト形式からモジュール記述子を読み取る場合に使用します。- パラメータ:
bb
- バイト・バッファpackageFinder
- パッケージのセットを作成できるサプライヤ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合、またはpackageFinder
によって返されたパッケージのセットに、モジュール記述子から取得されたすべてのパッケージが含まれていない場合
-
read
public static ModuleDescriptor read(ByteBuffer bb) モジュール宣言のバイナリ形式をバイト・バッファからモジュール記述子として読み取ります。 このメソッドは、2-argread
メソッドで指定されたとおりに機能します。ただし、バッファにエンコードされたモジュール記述子がパッケージのセットを示していない場合、パッケージ・ファインダを使用して追加のパッケージを検索することはありません。- パラメータ:
bb
- バイト・バッファ- 戻り値:
- モジュール記述子
- 例外:
InvalidModuleDescriptorException
- 無効なモジュール記述子が検出された場合
-