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

クラスConfiguration

java.lang.Object
java.lang.module.Configuration

public final class Configuration extends Object
resolutionまたは「サービス・バインディング」による解決の結果である構成。

構成は、解決の出力である「可読性グラフ」をカプセル化します。 可読性グラフは頂点がResolvedModule型の有向グラフであり、エッジはモジュール間の可読性を表す。 Configurationは、グラフ内の解決済モジュールのセットを取得するmodules()メソッドを定義します。 ResolvedModuleは、解決されたモジュールが読み取る一連のモジュールを取得するreads()メソッドを定義します。 読み取られるモジュールは、同じ構成にあるか、parent構成にある場合があります。

構成では、ルート・モジュールのコレクションを解決するresolveメソッドと、サービス・バインディングで解決を行うresolveAndBindメソッドを定義します。 両方のメソッドにインスタンス・バリアントと静的バリアントがあります。 インスタンス・メソッドは、レシーバを親構成として構成を作成します。 静的メソッドは、複数の親構成が存在できる、より高度なケースを対象としています。

Java仮想マシン内のモジュールの各layerは、構成から作成されます。 boot層の構成は、 ModuleLayer.boot().configuration()を呼び出すことによって得られます。 ブート層の構成は、多くの場合、新しい構成を作成するときに親になります。

次の例では、resolveメソッドを使用して、myappという名前のモジュールを、ブート・レイヤーの構成を親構成として解決します。 解決された各モジュールの名前と、各モジュールが読み取るモジュールの名前が出力されます。

   Path dir1 = ..., dir2 = ..., dir3 = ...;
   ModuleFinder finder = ModuleFinder.of(dir1, dir2, dir3);
   Configuration parent = ModuleLayer.boot().configuration();
   Configuration cf = parent.resolve(finder, ModuleFinder.of(), Set.of("myapp"));
   cf.modules().forEach(m -> {
       System.out.format("%s -> %s%n",
           m.name(),
           m.reads().stream()
               .map(ResolvedModule::name)
               .collect(Collectors.joining(", ")));
   });
導入されたバージョン:
9
関連項目: