クラスModuleLayer.Controller
java.lang.Object
java.lang.ModuleLayer.Controller
- 含まれているクラス:
ModuleLayer
public static final class ModuleLayer.Controller extends Object
モジュール・レイヤーを制御します。 モジュール・レイヤーを作成するために
ModuleLayerによって定義された静的メソッドは、レイヤー内のモジュールを制御するために使用できるControllerを返します。
特に指定しないかぎり、このクラスのメソッドにnull引数を渡すと、NullPointerExceptionがスローされます。
- APIのノート:
Controllerオブジェクトは、信頼できないコードと共有しないように注意する必要があります。- 導入されたバージョン:
- 9
-
メソッドのサマリー
修飾子と型メソッド説明addExports(Module source, String pn, Module target) レイヤーのモジュールsourceを更新して、パッケージをモジュールtargetにエクスポートします。レイヤー内のモジュールsourceを更新して、モジュールtargetへのパッケージを開きます。レイヤー内のモジュールsourceを更新して、モジュールtargetを読み取ります。enableNativeAccess(Module target) Restricted.呼び出し元のモジュールにネイティブ・アクセスがある場合は、レイヤー内のモジュールのネイティブ・アクセスを有効にします。layer()このオブジェクトが制御するレイヤーを返します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
メソッドの詳細
-
layer
-
addReads
public ModuleLayer.Controller addReads(Module source, Module target) レイヤー内のモジュールsourceを更新して、モジュールtargetを読み取ります。sourceが既にtargetを読み込んでいる場合、このメソッドはno-opです。- 実装上のノート:
- このメソッドによって追加された「エッジを読み取る」はweakであり、
sourceに強く到達可能な場合にtargetがGCされるのを防ぐことはできません。 - パラメータ:
source- ソース・モジュールtarget- 読み取るターゲット・モジュール- 戻り値:
- このコントローラ
- スロー:
IllegalArgumentException-sourceがモジュール・レイヤーにない場合- 関連項目:
-
addExports
public ModuleLayer.Controller addExports(Module source, String pn, Module target) レイヤーのモジュールsourceを更新して、パッケージをモジュールtargetにエクスポートします。sourceが既にパッケージを少なくともtargetにエクスポートする場合、このメソッドはno-opです。このメソッドを使用してパッケージをエクスポートしても、パッケージ内のpublicクラスで宣言されたpublic finalフィールドにターゲット・モジュールを反射的に設定したり、書込みアクセス権を持つメソッド・ハンドルを取得したりすることはできません。
- パラメータ:
source- ソース・モジュールpn- パッケージ名target- ターゲット・モジュール- 戻り値:
- このコントローラ
- スロー:
IllegalArgumentException-sourceがモジュール層にないか、パッケージがソース・モジュールにない場合- 関連項目:
-
addOpens
public ModuleLayer.Controller addOpens(Module source, String pn, Module target) レイヤー内のモジュールsourceを更新して、モジュールtargetへのパッケージを開きます。sourceが少なくともtargetまでパッケージを開いている場合、このメソッドはno-opです。このメソッドでパッケージを開くと、パッケージ内のクラスで宣言された最終フィールドにターゲット・モジュールを反射的に設定したり、書込みアクセス権を持つメソッド・ハンドルを取得したりすることはできません。
- パラメータ:
source- ソース・モジュールpn- パッケージ名target- ターゲット・モジュール- 戻り値:
- このコントローラ
- スロー:
IllegalArgumentException-sourceがモジュール層にないか、パッケージがソース・モジュールにない場合- 関連項目:
-
enableNativeAccess
public ModuleLayer.Controller enableNativeAccess(Module target) enableNativeAccessは、Javaプラットフォームの制限付きメソッドです。プログラムは、制限付きメソッドへのアクセスが有効になっている場合にのみenableNativeAccessを使用できます。制限されたメソッドは安全ではありません。不適切に使用した場合、JVMがクラッシュまたはメモリーが破損する場合があります。呼び出し元のモジュールにネイティブ・アクセスがある場合は、レイヤー内のモジュールのネイティブ・アクセスを有効にします。- パラメータ:
target- 更新するモジュール- 戻り値:
- このコントローラ
- スロー:
IllegalArgumentException-targetがモジュール・レイヤーにない場合IllegalCallerException- 呼び出し元が、ネイティブ・アクセスが有効になっていないモジュール内にある場合- 導入されたバージョン:
- 22
-