- java.lang.Object
-
- java.lang.Package
-
- すべての実装されたインタフェース:
AnnotatedElement
public class Package extends Object implements AnnotatedElement
クラス・ローダーに関連付けられたランタイム・パッケージに関するメタデータを表します。 メタデータには、注釈、バージョニングおよびシールが含まれます。ランタイム・パッケージの注釈は、ランタイム・パッケージのクラスと同じコード・ソースの
package-info.classから読み取られます。ランタイム・パッケージを構成するクラスのセットは、特定の仕様を実装できます。 仕様のタイトル、バージョンおよびベンダー(仕様の所有者/保守者を示す)は、
Packageの定義時に指定できます。 アプリケーションは、Package.isCompatibleWith(String)メソッドを使用して、Packageが特定の仕様バージョンと互換性があるかどうかを尋ねることができます。 また、ランタイム・パッケージを構成する実際のクラスに関する情報は、パッケージの定義時に提供できます。 この情報は、実装のタイトル、バージョンおよびベンダー(クラスのサプライヤを示す)で構成されます。Packageは、ClassLoader.definePackage(String, String, String, String, String, String, String, URL)メソッドを使用して明示的に定義できます。 呼出し側は、仕様と実装のタイトル、バージョンおよびベンダーを提供します。 呼び出し元は、パッケージがシールされているかどうかも示します。 そのランタイム・パッケージのクラスが定義されているときにランタイム・パッケージに対してPackageが明示的に定義されていない場合、Packageはクラスの定義クラス・ローダーによって次のように自動的に定義されます。指定されたモジュールのクラスに対して自動的に定義された
Packageには、次のプロパティがあります。- パッケージの名前は、クラスのバイナリ名から導出されます。 名前付きモジュール内のクラスは名前付きパッケージ内にある必要があるため、派生名は空にできません。
- パッケージは、モジュールの場所をコード・ソースとしてシールされます(わかっている場合)。
- 仕様および実装のタイトル、バージョンおよびベンダーは未指定です。
- パッケージ上の注釈は、前述のように
package-info.classから読み取られます。
名前のないモジュールのクラスに対して自動的に定義される
Packageには、次のプロパティがあります。- パッケージの名前は、
""(無名パッケージ内のクラスの場合)またはクラスのバイナリ名(名前付きパッケージ内のクラスの場合)から導出されます。 - パッケージはシールされていません。
- 仕様および実装のタイトル、バージョンおよびベンダーは未指定です。
- パッケージ上の注釈は、前述のように
package-info.classから読み取られます。
Packageは、Package.getPackage(String)メソッドおよびClassLoader.getDefinedPackage(String)メソッドを使用して取得できます。 クラス・ローダーによって定義されるすべてのPackageは、Package.getPackages()メソッドおよびClassLoader.getDefinedPackages()メソッドを使用して取得できます。- 実装上のノート:
- ビルトイン・クラス・ローダーは、名前付きモジュール内のパッケージに対して
Packageオブジェクトを明示的に定義しません。 かわりに、これらのパッケージは自動的に定義され、仕様および実装のバージョン情報はありません。 - 導入されたバージョン:
- 1.2
- 関連項目:
- JARファイルの仕様: パッケージ・シール、
ClassLoader.definePackage(String, String, String, String, String, String, String, URL) - The Java™Virtual Machine Specificationを参照してください。
- 5.3 ランタイム・パッケージ
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 <A extends Annotation>
AgetAnnotation(Class<A> annotationClass)存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]getAnnotations()この要素に存在する注釈を返します。<A extends Annotation>
A[]getAnnotationsByType(Class<A> annotationClass)この要素に関連付けられている注釈を返します。<A extends Annotation>
AgetDeclaredAnnotation(Class<A> annotationClass)直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]getDeclaredAnnotations()この要素に直接存在する注釈を返します。<A extends Annotation>
A[]getDeclaredAnnotationsByType(Class<A> annotationClass)直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。StringgetImplementationTitle()このパッケージのタイトルを返します。StringgetImplementationVendor()このパッケージを実装したベンダーを返します。不明な場合は、nullが返されます。StringgetImplementationVersion()この実装のバージョンを返します。StringgetName()このパッケージの名前を返します。static PackagegetPackage(String name)非推奨。複数のクラス・ローダーが互いに委任し、同じパッケージ名を持つクラスを定義し、そのようなローダーの1つがgetPackageの検索動作に依存して親ローダーからPackageを返す場合、Packageによって公開されるプロパティは、プログラムの休止状態では想定どおりでない可能性があります。static Package[]getPackages()コール元のクラス・ローダーとその祖先によって定義されたすべてのPackageを返します。StringgetSpecificationTitle()このパッケージが実装する仕様のタイトルを返します。StringgetSpecificationVendor()このパッケージを実装するクラスの仕様を所有して保持する組織、ベンダー、または会社の名前を返します。StringgetSpecificationVersion()このパッケージが実装する仕様のバージョン番号を返します。inthashCode()パッケージ名から計算されたハッシュ・コードを返します。booleanisAnnotationPresent(Class<? extends Annotation> annotationClass)指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。booleanisCompatibleWith(String desired)このパッケージの仕様のバージョンを目的のバージョンと比較します。booleanisSealed()このパッケージがシールされる場合は、trueを返します。booleanisSealed(URL url)このパッケージが、指定されたコード・ソースurlに関してシールされている場合、trueを返します。StringtoString()このPackageの文字列表現を返します。
-
-
-
メソッドの詳細
-
getName
public String getName()
このパッケージの名前を返します。- 戻り値:
- 『Java™言語仕様』のセクション6.5.3に定義されている、このパッケージの完全指定名。たとえば、
java.lang
-
getSpecificationTitle
public String getSpecificationTitle()
このパッケージが実装する仕様のタイトルを返します。- 戻り値:
- 指定タイトル
nullが不明な場合は返されます。
-
getSpecificationVersion
public String getSpecificationVersion()
このパッケージが実装する仕様のバージョン番号を返します。 このバージョン文字列は、"."で区切られた負でない10進整数のシーケンスでなければならず、先頭に0を指定できます。 バージョン文字列が比較されると、最上位番号が比較されます。仕様バージョン番号では、ピリオド"."で区切られた負でない10進整数で構成される構文を使用します(例: "2.0"または"1.2.3.4.5.6.7")。 この形式によって、メジャー、マイナー、マイクロなどのバージョンを表現するように、番号を拡張することができます。 仕様のバージョン番号は、次の正規文法によって記述されます。
- SpecificationVersion:
- Digits RefinedVersionopt
- RefinedVersion:
.Digits.Digits RefinedVersion- Digits:
- Digit
- Digits
- Digit:
Character.isDigit(char)がtrueを返す任意の文字(0、1、2など)
- 戻り値:
- 仕様バージョンが不明な場合は、
nullが返されます。
-
getSpecificationVendor
public String getSpecificationVendor()
このパッケージを実装するクラスの仕様を所有して保持する組織、ベンダー、または会社の名前を返します。- 戻り値:
- 仕様ベンダー
nullが不明な場合は戻されます。
-
getImplementationTitle
public String getImplementationTitle()
このパッケージのタイトルを返します。- 戻り値:
- 実装のタイトルである
nullは、不明な場合は返されます。
-
getImplementationVersion
public String getImplementationVersion()
この実装のバージョンを返します。 この実装のベンダーによって割り当てられた文字列からなり、Java実行時には特定の構文は指定または予期されません。 これは、このパッケージのベンダーによる実装で使用されるその他のパッケージ・バージョン文字列と等価かどうが比較されることがあります。- 戻り値:
- 実装のバージョンが不明な場合は、
nullが戻されます。
-
getImplementationVendor
public String getImplementationVendor()
このパッケージを実装したベンダーを返します。不明な場合は、nullが返されます。- 戻り値:
- このパッケージを実装したベンダーである
nullが不明な場合は戻されます。
-
isSealed
public boolean isSealed()
このパッケージがシールされる場合は、trueを返します。- 戻り値:
- パッケージがシールされる場合はtrue、そうでない場合はfalse。
-
isSealed
public boolean isSealed(URL url)
このパッケージが、指定されたコード・ソースurlに関してシールされている場合、trueを返します。- パラメータ:
url- コード・ソースURL- 戻り値:
- このパッケージが指定された
urlに関してシールされている場合はtrue
-
isCompatibleWith
public boolean isCompatibleWith(String desired) throws NumberFormatException
このパッケージの仕様のバージョンを目的のバージョンと比較します。 このパッケージの仕様のバージョン番号が目的のバージョン番号以上の場合は、trueが返されます。バージョン番号は、目的の文字列と仕様の文字列の対応するコンポーネントを順番に比較することによって比較されます。 各コンポーネントは10進整数として変換され、値として比較されます。 仕様の値が目的の値より大きい場合、trueが返されます。 値が目的の値より小さい場合、falseが返されます。 値が等しい場合、ピリオドはスキップされ、次のコンポーネントのペアが比較されます。
- パラメータ:
desired- 目的のバージョンのバージョン文字列。- 戻り値:
- このパッケージのバージョン番号が目的のバージョン番号以上の場合はtrue
- 例外:
NumberFormatException- 現在のバージョンが不明であるか、目的のバージョンまたは現在のバージョンが正しいドット付き形式でない場合。
-
getPackage
@Deprecated(since="9") public static Package getPackage(String name)
非推奨。複数のクラス・ローダーが互いに委任し、同じパッケージ名を持つクラスを定義し、そのようなローダーの1つがgetPackageの検索動作に依存して親ローダーからPackageを返す場合、Packageによって公開されるプロパティは、プログラムの休止状態では想定どおりでない可能性があります。 たとえば、Packageは、子ローダーによって定義されたpackage-info.classファイルに注釈が存在する場合でも、親ローダーによって定義されたpackage-info.classファイルからのみ注釈を公開します。 より堅牢な方法は、指定されたクラス・ローダーのPackageを返すClassLoader.getDefinedPackage(java.lang.String)メソッドを使用することです。呼び出し元のクラスローダーとその祖先内の名前でパッケージを検索します。呼出し側のクラス・ローダーが指定された名前の
Packageを定義すると、Packageが返されます。 それ以外の場合、呼出し側のクラス・ローダーの祖先は、指定された名前のPackageを再帰的に(親によって親で)検索されます。このメソッドの呼出しは、呼出し側のクラス・ローダーである
ClassLoaderインスタンスでClassLoader.getPackage(java.lang.String)をコールすることと同じです。- パラメータ:
name- "java.lang"などのパッケージ名。- 戻り値:
- コール元のクラス・ローダーまたはその祖先によって定義された指定名の
Package、または見つからない場合はnull。 - 例外:
NullPointerException-nameがnullの場合。- 関連項目:
ClassLoader.getDefinedPackage(java.lang.String)
-
getPackages
public static Package[] getPackages()
コール元のクラス・ローダーとその祖先によって定義されたすべてのPackageを返します。 返される配列には、同じパッケージ名のPackageオブジェクトを複数含めることができ、それぞれがクラス・ローダー階層内の異なるクラス・ローダーによって定義されます。このメソッドの呼出しは、呼出し側のクラス・ローダーである
ClassLoaderインスタンスでClassLoader.getPackages()をコールすることと同じです。- 戻り値:
- このクラス・ローダーとその祖先によって定義された
Packageオブジェクトの配列 - 関連項目:
ClassLoader.getDefinedPackages()
-
hashCode
public int hashCode()
パッケージ名から計算されたハッシュ・コードを返します。- オーバーライド:
hashCode、クラスObject- 戻り値:
- パッケージ名から計算されたハッシュ・コード。
- 関連項目:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
toString
public String toString()
このPackageの文字列表現を返します。 この値は、文字列「package」とパッケージ名です。 パッケージのタイトルが定義されている場合、それが付加されます。 パッケージのバージョンが定義されている場合、それが付加されます。
-
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。- 定義:
getAnnotation、インタフェースAnnotatedElement- 型パラメータ:
A- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
- 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.5
-
isAnnotationPresent
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。 このメソッドは、主にマーカー注釈への簡易アクセスを目的に設計されています。このメソッドによって返されるtrue値は、
getAnnotation(annotationClass) != nullと同等です。デフォルト・メソッドの本体は、前述のコードとして指定されています。
- 定義:
isAnnotationPresent、インタフェースAnnotatedElement- パラメータ:
annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
- 指定された注釈型の注釈がこの要素に存在する場合はtrue、そうでない場合はfalse
- 例外:
NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.5
-
getAnnotationsByType
public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElementこの要素に関連付けられている注釈を返します。 この要素に関連付けられている注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getAnnotation(Class)の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getAnnotationsByType、インタフェースAnnotatedElement- 型パラメータ:
A- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
- この要素に関連付けられている場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
- 例外:
NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.8
-
getAnnotations
public Annotation[] getAnnotations()
インタフェースからコピーされた説明:AnnotatedElementこの要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getAnnotations、インタフェースAnnotatedElement- 戻り値:
- この要素に存在する注釈
- 導入されたバージョン:
- 1.5
-
getDeclaredAnnotation
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは継承された注釈を無視します。 (この要素に直接存在する注釈がない場合は、nullを返します。)- 定義:
getDeclaredAnnotation、インタフェースAnnotatedElement- 型パラメータ:
A- 問合せの対象であり、直接存在する場合に返される注釈の型- パラメータ:
annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
- 直接存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.8
-
getDeclaredAnnotationsByType
public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接または間接的に存在する指定された注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getDeclaredAnnotation(Class)の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈(存在する場合)を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getDeclaredAnnotationsByType、インタフェースAnnotatedElement- 型パラメータ:
A- 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型- パラメータ:
annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
- この要素に直接または間接的に存在する場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
- 例外:
NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.8
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
インタフェースからコピーされた説明:AnnotatedElementこの要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getDeclaredAnnotations、インタフェースAnnotatedElement- 戻り値:
- この要素に直接存在する注釈
- 導入されたバージョン:
- 1.5
-
-