- すべての実装されたインタフェース:
AnnotatedElement
namedまたはunnamedのいずれかを表します。
名前付きモジュールにはnameがあり、「モジュール層」を作成するためにモジュールのグラフがJava Virtual Machineに定義されると、Java Virtual Machineによって構築されます。
名前のないモジュールには名前がありません。 getUnnamedModuleメソッドを呼び出すことによって得られる、各ClassLoaderの名前のないモジュールがあります。 名前付きモジュールにないすべての型は、定義されているクラス・ローダーの名前のないモジュールのメンバーです。
パラメータであるパッケージ名、またはこのクラスで定義されたメソッドによって返されるパッケージ名は、「Java言語仕様」のセクション6.5.3で定義されているパッケージの完全修飾名です(例: "java.lang")。
特に指定しない限り、null引数をこのクラスのメソッドに渡すと、NullPointerExceptionがスローされます。
- Java言語仕様を参照してください:
-
7.7 モジュール宣言
- 導入されたバージョン:
- 9
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明addExports(String pn, Module other) 呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたパッケージを指定されたモジュールにエクスポートします。このモジュールが少なくとも呼び出しモジュールへのパッケージを「オープン」で作成した場合、このモジュールを更新して、指定されたモジュールへのパッケージを開きます。呼び出し元モジュールがこのモジュールである場合、このモジュールを更新して、指定されたモジュールを読み取ります。呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたサービス型にサービス依存を追加します。booleanこのモジュールが指定されたモジュールを読み込むかどうかを示します。booleanこのモジュールが指定されたサービス型にサービス依存するかどうかを示します。<T extends Annotation>
TgetAnnotation(Class<T> annotationClass) 存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。この要素に存在する注釈を返します。このモジュールのClassLoaderを返します。この要素に直接存在する注釈を返します。このモジュールのモジュール記述子を返します。このモジュールが名前のないモジュールである場合はnullを返します。getLayer()このモジュールがモジュール・レイヤーにない場合は、このモジュールを含むモジュール・レイヤーまたはnullを返します。getName()このモジュールが名前のないモジュールである場合、モジュール名またはnullを返します。このモジュール内のパッケージのパッケージ名のセットを返します。getResourceAsStream(String name) このモジュール内のリソースを読み込むための入力ストリームを返します。booleanisExported(String pn) このモジュールが指定されたパッケージを無条件でエクスポートする場合は、trueを返します。booleanisExported(String pn, Module other) このモジュールが与えられたパッケージを少なくとも与えられたモジュールにエクスポートする場合は、trueを返します。booleanisNamed()このモジュールが名前付きモジュールである場合は、trueを返します。booleanこのモジュールがパッケージを無条件にパッケージを「オープン」している場合は、trueを返します。booleanこのモジュールが少なくとも与えられたモジュールへのパッケージを「オープン」している場合は、trueを返します。toString()このモジュールの文字列表現を返します。クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitインタフェース java.lang.reflect.AnnotatedElementで宣言されたメソッド
getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
-
メソッドの詳細
-
isNamed
public boolean isNamed()このモジュールが名前付きモジュールである場合は、trueを返します。- 戻り値:
trueが名前付きモジュールの場合- Java言語仕様を参照してください:
-
7.7.5 名前なしモジュール
- 関連項目:
-
getName
public String getName()このモジュールが名前のないモジュールである場合、モジュール名またはnullを返します。- 戻り値:
- モジュール名
-
getClassLoader
public ClassLoader getClassLoader()このモジュールのClassLoaderを返します。セキュリティ・マネージャが存在する場合は、最初に
RuntimePermission("getClassLoader")アクセス許可で呼び出された場合はcheckPermissionメソッドが呼び出され、呼び出し元がクラス・ローダーにアクセスできることを確認します。- 戻り値:
- このモジュールのクラス・ローダー
- throws:
SecurityException- セキュリティ・マネージャによって拒否された場合
-
getDescriptor
public ModuleDescriptor getDescriptor()このモジュールのモジュール記述子を返します。このモジュールが名前のないモジュールである場合はnullを返します。- 戻り値:
- このモジュールのモジュール記述子
-
getLayer
public ModuleLayer getLayer()このモジュールがモジュール・レイヤーにない場合は、このモジュールを含むモジュール・レイヤーまたはnullを返します。 モジュール・レイヤーには名前付きモジュールが含まれているため、このメソッドは名前のないモジュールで呼び出されたときに常にnullを返します。「ダイナミック・モジュール」は実行時に生成される名前付きモジュールです。 ダイナミック・モジュールは、モジュール・レイヤー内にあってもなくてもよい。
- 戻り値:
- このモジュールを含むモジュール・レイヤー
- 関連項目:
-
canRead
public boolean canRead(Module other) このモジュールが指定されたモジュールを読み込むかどうかを示します。 このメソッドが呼び出された場合、このモジュールは自身を読み込むかどうかを調べるためにtrueを返します。 また、名前のないモジュール(名前のないモジュールはすべてのモジュールを読み込む)で呼び出された場合は、trueを返します。- パラメータ:
other- 他のモジュール- 戻り値:
trueこのモジュールがotherを読み取る場合- 関連項目:
-
addReads
呼び出し元モジュールがこのモジュールである場合、このモジュールを更新して、指定されたモジュールを読み取ります。 このメソッドは、otherがこのモジュール(すべてのモジュールが自分自身を読む)である場合、このモジュールはノー・オペレーションであり、このモジュールは名前のないモジュール(名前のないモジュールはすべてのモジュールを読み込む)であるか、またはこのモジュールはすでにotherを読み込んでいます。- 実装上のノート:
- このメソッドで追加された「エッジを読み取る」はweakであり、
otherはこのモジュールが強く到達可能なときにGC'edされることを防ぎません。 - パラメータ:
other- 他のモジュール- 戻り値:
- このモジュール
- throws:
IllegalCallerException- これが名前付きモジュールで、呼び出し側モジュールがこのモジュールでない場合- 関連項目:
-
isExported
このモジュールが与えられたパッケージを少なくとも与えられたモジュールにエクスポートする場合は、trueを返します。このメソッドは、このモジュール内のパッケージが自身にエクスポートされているかどうかをテストするために呼び出されると、
trueを返します。 名前のないモジュールで呼び出されると、常にtrueを返します。 指定されたモジュールへのopenであるパッケージは、実行時にそのモジュールにエクスポートされると見なされるので、パッケージがそのモジュールに対して開いている場合、このメソッドはtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。
- パラメータ:
pn- パッケージ名other- 他のモジュール- 戻り値:
trueこのモジュールがパッケージを少なくとも指定されたモジュールにエクスポートする場合- 関連項目:
-
isOpen
このモジュールが少なくとも与えられたモジュールへのパッケージを「オープン」している場合は、trueを返します。このメソッドは、呼び出されると
trueを返して、このモジュールのパッケージがそれ自身に対して開いているかどうかをテストします。 モジュール内にパッケージがあるopenモジュールで呼び出されると、trueを返します。 名前のないモジュールで呼び出されると、常にtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。
- パラメータ:
pn- パッケージ名other- 他のモジュール- 戻り値:
trueこのモジュールがパッケージを少なくとも指定されたモジュールに「オープン」している場合- 関連項目:
-
isExported
public boolean isExported(String pn) このモジュールが指定されたパッケージを無条件でエクスポートする場合は、trueを返します。このメソッドは、名前のないモジュールで呼び出されたときに常に
trueを返します。 無条件にopenedであるパッケージは、実行時に無条件に書き出されると見なされるため、パッケージが無条件で開かれた場合、このメソッドはtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。
- パラメータ:
pn- パッケージ名- 戻り値:
- このモジュールが無条件にパッケージをエクスポートする場合は
true - 関連項目:
-
isOpen
public boolean isOpen(String pn) このモジュールがパッケージを無条件にパッケージを「オープン」している場合は、trueを返します。このメソッドは、名前のないモジュールで呼び出されたときに常に
trueを返します。 さらに、モジュール内のパッケージを含むopenモジュールで呼び出されると、常にtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。
- パラメータ:
pn- パッケージ名- 戻り値:
trueこのモジュールがパッケージを無条件で「オープン」している場合- 関連項目:
-
addExports
呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたパッケージを指定されたモジュールにエクスポートします。パッケージがすでに指定されたモジュールに(またはopen)にエクスポートされている場合、このメソッドは効果がありません。
- APIのノート:
- 「Java Virtual Machine仕様」の5.4.3の項で指定されているように、リンケージ・エラーのためにシンボリック参照を解決しようとする試みが失敗した場合、それ以降の参照の解決は常に、最初の解決試行の結果としてスローされたものと同じエラーで失敗します。
- パラメータ:
pn- パッケージ名other- モジュール- 戻り値:
- このモジュール
- throws:
IllegalArgumentException-pnがnullの場合、またはこれが名前付きモジュールであり、パッケージpnがこのモジュールのパッケージでない場合IllegalCallerException- これが名前付きモジュールで、呼び出し側モジュールがこのモジュールでない場合- Java Virtual Machine仕様を参照してください:
-
5.4.3 解決方法
- 関連項目:
-
addOpens
このモジュールが少なくとも呼び出しモジュールへのパッケージを「オープン」で作成した場合、このモジュールを更新して、指定されたモジュールへのパッケージを開きます。 このメソッドを使用してパッケージを開くと、プライベート・アクセスをサポートするAPIを使用する場合や、デフォルトをバイパスまたは抑制する方法の場合、パッケージ内のすべての型が許可され、パブリック型およびパブリック・メンバーだけでなく、それらのメンバーも指定されたモジュールに反映されますJava言語のアクセス制御チェック。パッケージがすでに指定されたモジュールに対してopenであれば、このメソッドは効果がありません。
- APIのノート:
- このメソッドは、「消費者モジュール」が修飾されたオープンを使用してパッケージを「APIモジュール」にオープンするが、コンシューマ・モジュールのクラスのメンバーへのリフレクション・アクセスが別のモジュールのコードに委譲される場合に使用できます。 APIモジュールのコードは、このメソッドを使用してコンシューマ・モジュールのパッケージを他のモジュールに開くことができます。
- パラメータ:
pn- パッケージ名other- モジュール- 戻り値:
- このモジュール
- throws:
IllegalArgumentException-pnがnullの場合、またはこれが名前付きモジュールであり、パッケージpnがこのモジュールのパッケージでない場合IllegalCallerException- これが指定されたモジュールであり、このモジュールが少なくとも呼び出し元モジュールに対してパッケージを開いていない場合- 関連項目:
-
addUses
呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたサービス型にサービス依存を追加します。 このメソッドは、他のモジュールの代わりにServiceLoaderを呼び出すフレームワーク、またはフレームワークが他のコードによってサービス型への参照を渡すフレームワークで使用するためのものです。 名前のないモジュールまたは自動モジュールで呼び出された場合、このメソッドはノー・オペレーションです。このメソッドでは
resolveAndBindが再実行されることはありません。- パラメータ:
service- サービス型- 戻り値:
- このモジュール
- throws:
IllegalCallerException- これが名前付きモジュールで、呼び出し側モジュールがこのモジュールでない場合- 関連項目:
-
canUse
public boolean canUse(Class<?> service) このモジュールが指定されたサービス型にサービス依存するかどうかを示します。 このメソッドは、名前のないモジュールまたは自動モジュールで呼び出されたときに常にtrueを返します。- パラメータ:
service- サービス型- 戻り値:
- このモジュールがサービス型
stを使用する場合はtrue - 関連項目:
-
getPackages
このモジュール内のパッケージのパッケージ名のセットを返します。名前付きモジュールの場合、返されるセットにはモジュール内の各パッケージの要素が含まれます。
名前のないモジュールの場合、返されるセットには、名前のないモジュール内の
has been definedが持つ各パッケージの要素が含まれます。- 戻り値:
- このモジュール内のパッケージのパッケージ名のセット
-
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass) 存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは、名前のないモジュールで呼び出されたときにnullを返します。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
getAnnotation、インタフェースAnnotatedElement- 型パラメータ:
T- 照会し、存在する場合に返す注釈の型。- パラメータ:
annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
- 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
-
getAnnotations
public Annotation[] getAnnotations()この要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。 このメソッドは、名前のないモジュールで呼び出されたときに空の配列を返します。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
getAnnotations、インタフェースAnnotatedElement- 戻り値:
- この要素に存在する注釈
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()この要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。 このメソッドは、名前のないモジュールで呼び出されたときに空の配列を返します。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
getDeclaredAnnotations、インタフェースAnnotatedElement- 戻り値:
- この要素に直接存在する注釈
-
getResourceAsStream
public InputStream getResourceAsStream(String name) throws IOException このモジュール内のリソースを読み込むための入力ストリームを返します。nameパラメータは、リソースを識別する'/'-分離されたパス名です。Class.getResourceAsStreamと同様に、このメソッドはモジュール・クラス・ローダーfindResource(String,String)メソッドに委譲し、(モジュールが無名の場合はnull)というモジュール名とリソースの名前で呼び出します。 リソース名の先頭にスラッシュがある場合は、委任の前に削除されます。名前付きモジュールのリソースはencapsulatedなので、他のモジュールのコードでは見つけることができません。 リソースを見つけるかどうかは、次のように判断されます:
- リソース名が"
.class"で終わると、カプセル化されません。 - 「パッケージ名」は、リソース名から派生したものです。 パッケージ名がモジュール内のpackageの場合、パッケージはopenから少なくとも呼び出し元モジュールまでのときにのみ、このメソッドの呼び出し側がリソースを見つけることができます。 リソースがモジュール内のパッケージ内にない場合、リソースはカプセル化されません。
上記の場合、リソースの「パッケージ名」は、名前の最後の
'/'に先行する文字のサブシーケンスから導出され、次に、サブシーケンスの各'/'文字を'.'に置き換えます。 パッケージ名を派生させるときは先頭のスラッシュは無視されます。 例として、"a/b/c/foo.properties"という名前のリソースのために派生したパッケージ名は"a.b.c"です。 "META-INF"は合法的なパッケージ名ではないため、"META-INF/MANIFEST.MF"という名前のリソース名はカプセル化されません。このメソッドは、リソースがこのモジュールにない場合、リソースがカプセル化され、呼び出し側が見つけることができない場合、またはリソースへのアクセスがセキュリティ・マネージャによって拒否された場合は
nullを返します。- パラメータ:
name- リソース名- 戻り値:
- リソースまたは
nullを読み取るための入力ストリーム - throws:
IOException- 入出力エラーが発生した場合- 関連項目:
- リソース名が"
-
toString
public String toString()このモジュールの文字列表現を返します。 名前付きモジュールの場合、文字列は"module"の後にスペース、モジュール名が続きます。 名前のないモジュールの場合は、文字列"unnamed module"の後に空白が続き、次に名前のないモジュールを識別する実装固有の文字列が表示されます。
-