- すべての実装されたインタフェース:
- AnnotatedElement
public final class Module extends Object implements AnnotatedElement
namedまたはunnamedのいずれかを表します。
  名前付きモジュールにはnameがあり、「モジュール層」を作成するためにモジュールのグラフがJava Virtual Machineに定義されると、Java Virtual Machineによって構築されます。 
 名前のないモジュールには名前がありません。 getUnnamedModuleメソッドを呼び出すことによって得られる、各ClassLoaderの名前のないモジュールがあります。 名前付きモジュールにないすべての型は、定義されているクラス・ローダーの名前のないモジュールのメンバーです。  
 このクラスで定義されたメソッドによって返される、パラメータであるパッケージ名は、「Java™言語仕様」のセクション6.5.3で定義されているパッケージの完全修飾名です(例:"java.lang")。 
 特に指定しない限り、null引数をこのクラスのメソッドに渡すと、NullPointerExceptionがスローされます。 
- 導入されたバージョン:
- 9
- 関連項目:
- Class.getModule()
- 
メソッドのサマリー修飾子と型 メソッド 説明 ModuleaddExports(String pn, Module other)呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたパッケージを指定されたモジュールにエクスポートします。ModuleaddOpens(String pn, Module other)このモジュールが少なくとも呼び出しモジュールへのパッケージを「オープン」で作成した場合、このモジュールを更新して、指定されたモジュールへのパッケージを開きます。ModuleaddReads(Module other)呼び出し元モジュールがこのモジュールである場合、このモジュールを更新して、指定されたモジュールを読み取ります。ModuleaddUses(Class<?> service)呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたサービス型にサービス依存を追加します。booleancanRead(Module other)このモジュールが指定されたモジュールを読み込むかどうかを示します。booleancanUse(Class<?> service)このモジュールが指定されたサービス型にサービス依存するかどうかを示します。<T extends Annotation>
 TgetAnnotation(Class<T> annotationClass)存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]getAnnotations()この要素に存在する注釈を返します。ClassLoadergetClassLoader()このモジュールのClassLoaderを返します。Annotation[]getDeclaredAnnotations()この要素に直接存在する注釈を返します。ModuleDescriptorgetDescriptor()このモジュールのモジュール記述子を返します。このモジュールが名前のないモジュールである場合はnullを返します。ModuleLayergetLayer()このモジュールがモジュール・レイヤーにない場合は、このモジュールを含むモジュール・レイヤーまたはnullを返します。StringgetName()このモジュールが名前のないモジュールである場合、モジュール名またはnullを返します。Set<String>getPackages()このモジュール内のパッケージのパッケージ名のセットを返します。InputStreamgetResourceAsStream(String name)このモジュール内のリソースを読み込むための入力ストリームを返します。booleanisExported(String pn)このモジュールが指定されたパッケージを無条件でエクスポートする場合は、trueを返します。booleanisExported(String pn, Module other)このモジュールが与えられたパッケージを少なくとも与えられたモジュールにエクスポートする場合は、trueを返します。booleanisNamed()このモジュールが名前付きモジュールである場合は、trueを返します。booleanisOpen(String pn)このモジュールがパッケージを無条件にパッケージを「オープン」している場合は、trueを返します。booleanisOpen(String pn, Module other)このモジュールが少なくとも与えられたモジュールへのパッケージを「オープン」している場合は、trueを返します。StringtoString()このモジュールの文字列表現を返します。クラス java.lang.Objectで宣言されたメソッドclone、equals、finalize、getClass、hashCode、notify、notifyAll、wait、wait、waitインタフェース java.lang.reflect.AnnotatedElementで宣言されたメソッドgetAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
- 
メソッドの詳細- 
isNamedpublic boolean isNamed()このモジュールが名前付きモジュールである場合は、trueを返します。- 戻り値:
- trueが名前付きモジュールの場合
- 関連項目:
- ClassLoader.getUnnamedModule()
 
- 
getNamepublic String getName()このモジュールが名前のないモジュールである場合、モジュール名またはnullを返します。- 戻り値:
- モジュール名
 
- 
getClassLoaderpublic ClassLoader getClassLoader()このモジュールのClassLoaderを返します。セキュリティ・マネージャが存在する場合は、最初に RuntimePermission("getClassLoader")アクセス許可で呼び出された場合はcheckPermissionメソッドが呼び出され、呼び出し元がクラス・ローダーにアクセスできることを確認します。- 戻り値:
- このモジュールのクラス・ローダー
- 例外:
- SecurityException- セキュリティ・マネージャによって拒否された場合
 
- 
getDescriptorpublic ModuleDescriptor getDescriptor()このモジュールのモジュール記述子を返します。このモジュールが名前のないモジュールである場合はnullを返します。- 戻り値:
- このモジュールのモジュール記述子
 
- 
getLayerpublic ModuleLayer getLayer()このモジュールがモジュール・レイヤーにない場合は、このモジュールを含むモジュール・レイヤーまたはnullを返します。 モジュール・レイヤーには名前付きモジュールが含まれているため、このメソッドは名前のないモジュールで呼び出されたときに常にnullを返します。「ダイナミック・モジュール」は実行時に生成される名前付きモジュールです。 ダイナミック・モジュールは、モジュール・レイヤー内にあってもなくてもよい。 - 戻り値:
- このモジュールを含むモジュール・レイヤー
- 関連項目:
- Proxy
 
- 
canReadpublic boolean canRead(Module other)このモジュールが指定されたモジュールを読み込むかどうかを示します。 このメソッドが呼び出された場合、このモジュールは自身を読み込むかどうかを調べるためにtrueを返します。 また、名前のないモジュール(名前のないモジュールはすべてのモジュールを読み込む)で呼び出された場合は、trueを返します。- パラメータ:
- other- 他のモジュール
- 戻り値:
- trueこのモジュールが- otherを読み取る場合
- 関連項目:
- addReads(Module)
 
- 
addReads呼び出し元モジュールがこのモジュールである場合、このモジュールを更新して、指定されたモジュールを読み取ります。 このメソッドは、otherがこのモジュール(すべてのモジュールが自分自身を読む)である場合、このモジュールはノー・オペレーションであり、このモジュールは名前のないモジュール(名前のないモジュールはすべてのモジュールを読み込む)であるか、またはこのモジュールはすでにotherを読み込んでいます。- 実装上のノート:
- このメソッドで追加された「エッジを読み取る」はweakであり、otherはこのモジュールが強く到達可能なときにGC'edされることを防ぎません。
- パラメータ:
- other- 他のモジュール
- 戻り値:
- このモジュール
- 例外:
- IllegalCallerException- これが名前付きモジュールで、呼び出し側モジュールがこのモジュールでない場合
- 関連項目:
- canRead(java.lang.Module)
 
- 
isExportedこのモジュールが与えられたパッケージを少なくとも与えられたモジュールにエクスポートする場合は、trueを返します。このメソッドは、このモジュール内のパッケージが自身にエクスポートされているかどうかをテストするために呼び出されると、 trueを返します。 名前のないモジュールで呼び出されると、常にtrueを返します。 指定されたモジュールへのopenであるパッケージは、実行時にそのモジュールにエクスポートされると見なされるので、パッケージがそのモジュールに対して開いている場合、このメソッドはtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。 - パラメータ:
- pn- パッケージ名
- other- 他のモジュール
- 戻り値:
- trueこのモジュールがパッケージを少なくとも指定されたモジュールにエクスポートする場合
- 関連項目:
- ModuleDescriptor.exports(),- addExports(String,Module)
 
- 
isOpenこのモジュールが少なくとも与えられたモジュールへのパッケージを「オープン」している場合は、trueを返します。このメソッドは、呼び出されると trueを返して、このモジュールのパッケージがそれ自身に対して開いているかどうかをテストします。 モジュール内にパッケージがあるopenモジュールで呼び出されると、trueを返します。 名前のないモジュールで呼び出されると、常にtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。 - パラメータ:
- pn- パッケージ名
- other- 他のモジュール
- 戻り値:
- trueこのモジュールがパッケージを少なくとも指定されたモジュールに「オープン」している場合
- 関連項目:
- ModuleDescriptor.opens(),- addOpens(String,Module),- AccessibleObject.setAccessible(boolean),- MethodHandles.privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles.Lookup)
 
- 
isExportedpublic boolean isExported(String pn)このモジュールが指定されたパッケージを無条件でエクスポートする場合は、trueを返します。このメソッドは、名前のないモジュールで呼び出されたときに常に trueを返します。 無条件にopenedであるパッケージは、実行時に無条件に書き出されると見なされるため、パッケージが無条件で開かれた場合、このメソッドはtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。 - パラメータ:
- pn- パッケージ名
- 戻り値:
- このモジュールが無条件にパッケージをエクスポートする場合はtrue
- 関連項目:
- ModuleDescriptor.exports()
 
- 
isOpenpublic boolean isOpen(String pn)このモジュールがパッケージを無条件にパッケージを「オープン」している場合は、trueを返します。このメソッドは、名前のないモジュールで呼び出されたときに常に trueを返します。 さらに、モジュール内のパッケージを含むopenモジュールで呼び出されると、常にtrueを返します。このメソッドは、指定されたモジュールがこのモジュールを読み取るかどうかをチェックしません。 - パラメータ:
- pn- パッケージ名
- 戻り値:
- trueこのモジュールがパッケージを無条件で「オープン」している場合
- 関連項目:
- ModuleDescriptor.opens()
 
- 
addExports呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたパッケージを指定されたモジュールにエクスポートします。パッケージがすでに指定されたモジュールに(またはopen)にエクスポートされている場合、このメソッドは効果がありません。 - APIのノート:
- 「Java™仮想マシン仕様」のセクション5.4.3で指定されているように、リンケージ・エラーのためにシンボリック・リファレンスを解決しようとする試みが失敗した場合、最初の解決試行の結果としてスローされたのと同じエラーで、。
- パラメータ:
- pn- パッケージ名
- other- モジュール
- 戻り値:
- このモジュール
- 例外:
- IllegalArgumentException-- pnが- nullの場合、またはこれが名前付きモジュールであり、パッケージ- pnがこのモジュールのパッケージでない場合
- IllegalCallerException- これが名前付きモジュールで、呼び出し側モジュールがこのモジュールでない場合
- Java Virtual Machine仕様を参照してください:
- 
5.4.3 解決内容
- 関連項目:
- isExported(String,Module)
 
- 
addOpensこのモジュールが少なくとも呼び出しモジュールへのパッケージを「オープン」で作成した場合、このモジュールを更新して、指定されたモジュールへのパッケージを開きます。 このメソッドを使用してパッケージを開くと、プライベート・アクセスをサポートするAPIを使用する場合や、デフォルトをバイパスまたは抑制する方法の場合、パッケージ内のすべての型が許可され、パブリック型およびパブリック・メンバーだけでなく、それらのメンバーも指定されたモジュールに反映されますJava言語のアクセス制御チェック。パッケージがすでに指定されたモジュールに対してopenであれば、このメソッドは効果がありません。 - APIのノート:
- このメソッドは、「消費者モジュール」が修飾されたオープンを使用してパッケージを「APIモジュール」にオープンするが、コンシューマ・モジュールのクラスのメンバーへのリフレクション・アクセスが別のモジュールのコードに委譲される場合に使用できます。 APIモジュールのコードは、このメソッドを使用してコンシューマ・モジュールのパッケージを他のモジュールに開くことができます。
- パラメータ:
- pn- パッケージ名
- other- モジュール
- 戻り値:
- このモジュール
- 例外:
- IllegalArgumentException-- pnが- nullの場合、またはこれが名前付きモジュールであり、パッケージ- pnがこのモジュールのパッケージでない場合
- IllegalCallerException- これが指定されたモジュールであり、このモジュールが少なくとも呼び出し元モジュールに対してパッケージを開いていない場合
- 関連項目:
- isOpen(String,Module),- AccessibleObject.setAccessible(boolean),- MethodHandles.privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles.Lookup)
 
- 
addUses呼び出し側モジュールがこのモジュールである場合、このモジュールを更新して、指定されたサービス型にサービス依存を追加します。 このメソッドは、他のモジュールの代わりにServiceLoaderを呼び出すフレームワーク、またはフレームワークが他のコードによってサービス型への参照を渡すフレームワークで使用するためのものです。 名前のないモジュールまたは自動モジュールで呼び出された場合、このメソッドはノー・オペレーションです。このメソッドでは resolveAndBindが再実行されることはありません。- パラメータ:
- service- サービス型
- 戻り値:
- このモジュール
- 例外:
- IllegalCallerException- これが名前付きモジュールで、呼び出し側モジュールがこのモジュールでない場合
- 関連項目:
- canUse(Class),- ModuleDescriptor.uses()
 
- 
canUsepublic boolean canUse(Class<?> service)このモジュールが指定されたサービス型にサービス依存するかどうかを示します。 このメソッドは、名前のないモジュールまたは自動モジュールで呼び出されたときに常にtrueを返します。- パラメータ:
- service- サービス型
- 戻り値:
- このモジュールがサービス型stを使用する場合はtrue
- 関連項目:
- addUses(Class)
 
- 
getPackagesこのモジュール内のパッケージのパッケージ名のセットを返します。名前付きモジュールの場合、返されるセットにはモジュール内の各パッケージの要素が含まれます。 名前のないモジュールの場合、このメソッドは、このモジュール・クラス・ローダーの getDefinedPackagesメソッドを呼び出して、パッケージ名のセットを返すのと同じです。- 戻り値:
- このモジュール内のパッケージのパッケージ名のセット
 
- 
getAnnotationpublic <T extends Annotation> T getAnnotation(Class<T> annotationClass)存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは、名前のないモジュールで呼び出されたときにnullを返します。- 定義:
- getAnnotation、インタフェース:- AnnotatedElement
- 型パラメータ:
- T- 照会し、存在する場合に返す注釈の型。
- パラメータ:
- annotationClass- 注釈型に対応するClassオブジェクト
- 戻り値:
- 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
 
- 
getAnnotationspublic Annotation[] getAnnotations()この要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。 このメソッドは、名前のないモジュールで呼び出されたときに空の配列を返します。- 定義:
- getAnnotations、インタフェース:- AnnotatedElement
- 戻り値:
- この要素に存在する注釈
 
- 
getDeclaredAnnotationspublic Annotation[] getDeclaredAnnotations()この要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。 このメソッドは、名前のないモジュールで呼び出されたときに空の配列を返します。- 定義:
- getDeclaredAnnotations、インタフェース:- AnnotatedElement
- 戻り値:
- この要素に直接存在する注釈
 
- 
getResourceAsStreampublic 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を読み取るための入力ストリーム
- 例外:
- IOException- 入出力エラーが発生した場合
- 関連項目:
- Class.getResourceAsStream(String)
 
-  リソース名が"
- 
toStringpublic String toString()このモジュールの文字列表現を返します。 名前付きモジュールの場合、文字列は"module"の後にスペース、モジュール名が続きます。 名前のないモジュールの場合は、文字列"unnamed module"の後に空白が続き、次に名前のないモジュールを識別する実装固有の文字列が表示されます。
 
-