public class Package extends Object implements AnnotatedElement
Package
オブジェクトには、Javaパッケージの実装と仕様に関するバージョン情報が含まれます。このバージョン管理情報は、クラスをロードしたClassLoader
インスタンスにより取得され、使用可能になります。通常、クラスにより分散されるマニフェスト内に格納されます。
パッケージを構成するクラスのセットは特定の仕様を実装する場合があり、その場合は仕様タイトル、バージョン番号、およびベンダー文字列がその仕様を特定します。アプリケーションは、パッケージが特定のバージョンと互換性があるかどうかを確認できます。詳細は、isCompatibleWith
メソッドを参照してください。
仕様のバージョン番号は、負でない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など)
実装のタイトル、バージョン、およびベンダー文字列は実装を特定し、問題が発生したときに影響を受けるパッケージを正確に報告できるようにします。3つの実装文字列の内容はすべて、ベンダー固有です。実装バージョン文字列には指定された構文はなく、目的のバージョン識別子と等価かどうかの比較だけが行われます。
各ClassLoader
インスタンス内では、同じJavaパッケージからのすべてのクラスが同じPackageオブジェクトを持ちます。staticメソッドにより、名前、または検索対象の現在のクラス・ローダーに知られているすべてのパッケージのセットで、パッケージを検索できます。
修飾子と型 | メソッドと説明 |
---|---|
<A extends Annotation> |
getAnnotation(Class<A> annotationClass)
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
|
Annotation[] |
getAnnotations()
この要素に存在する注釈を返します。
|
<A extends Annotation> |
getAnnotationsByType(Class<A> annotationClass)
この要素に関連付けられている注釈を返します。
|
<A extends Annotation> |
getDeclaredAnnotation(Class<A> annotationClass)
直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
|
Annotation[] |
getDeclaredAnnotations()
この要素に直接存在する注釈を返します。
|
<A extends Annotation> |
getDeclaredAnnotationsByType(Class<A> annotationClass)
直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。
|
String |
getImplementationTitle()
このパッケージのタイトルを返します。
|
String |
getImplementationVendor()
この実装を提供した組織、ベンダー、または会社の名前を返します。
|
String |
getImplementationVersion()
この実装のバージョンを返します。
|
String |
getName()
このパッケージの名前を返します。
|
static Package |
getPackage(String name)
呼出し側の
ClassLoader インスタンス内の名前でパッケージを検索します。 |
static Package[] |
getPackages()
呼出し側の
ClassLoader インスタンスとして現在知られているすべてのパッケージを取得します。 |
String |
getSpecificationTitle()
このパッケージが実装する仕様のタイトルを返します。
|
String |
getSpecificationVendor()
このパッケージを実装するクラスの仕様を所有して保持する組織、ベンダー、または会社の名前を返します。
|
String |
getSpecificationVersion()
このパッケージが実装する仕様のバージョン番号を返します。
|
int |
hashCode()
パッケージ名から計算されたハッシュ・コードを返します。
|
boolean |
isAnnotationPresent(Class<? extends Annotation> annotationClass)
指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。
|
boolean |
isCompatibleWith(String desired)
このパッケージの仕様のバージョンを目的のバージョンと比較します。
|
boolean |
isSealed()
このパッケージがシールされる場合は、trueを返します。
|
boolean |
isSealed(URL url)
このパッケージが指定されたコード・ソースURLに対してシールされる場合は、trueを返します。
|
String |
toString()
このPackageの文字列表現を返します。
|
public String getName()
java.lang
public String getSpecificationTitle()
public String getSpecificationVersion()
public String getSpecificationVendor()
public String getImplementationTitle()
public String getImplementationVersion()
public String getImplementationVendor()
public boolean isSealed()
public boolean isSealed(URL url)
url
- コード・ソースURLpublic boolean isCompatibleWith(String desired) throws NumberFormatException
バージョン番号は、目的の文字列と仕様の文字列の対応するコンポーネントを順番に比較することによって比較されます。各コンポーネントは10進整数として変換され、値として比較されます。仕様の値が目的の値より大きい場合、trueが返されます。値が目的の値より小さい場合、falseが返されます。値が等しい場合、ピリオドはスキップされ、次のコンポーネントのペアが比較されます。
desired
- 目的のバージョンのバージョン文字列。NumberFormatException
- 目的のバージョンまたは現在のバージョンがドットで区切られた正しい形式でない場合。public static Package getPackage(String name)
ClassLoader
インスタンス内の名前でパッケージを検索します。呼出し側のClassLoader
インスタンスは、指定されたクラスに対応するパッケージ・インスタンスを検索するために使用されます。呼出し側のClassLoader
インスタンスがnullの場合、システムのClassLoader
インスタンスによりロードされたパッケージのセットが検索されて、指定されたパッケージが検索されます。 パッケージは、クラス・ローダーが適切な属性を持つパッケージ・インスタンスを生成した場合にだけ、バージョンと仕様の属性を持ちます。通常、それらの属性は、クラスに付属するマニフェストに定義されます。
name
- パッケージ名、たとえば、java.lang。public static Package[] getPackages()
ClassLoader
インスタンスとして現在知られているすべてのパッケージを取得します。それらのパッケージは、そのClassLoader
インスタンスによってロードされたクラス、またはそのインスタンスに名前でアクセスできるクラスに相当します。呼出し側のClassLoader
インスタンスが、実装によってはnull
で表されることがあるブートストラップClassLoader
インスタンスである場合、ブートストラップClassLoader
インスタンスによりロードされるクラスに対応するパッケージだけが返されます。ClassLoader
インスタンスに認識されているパッケージの新しい配列。認識されているものがない場合、長さがゼロの配列が返される。public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
AnnotatedElement
getAnnotation
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
このメソッドによって返されるtrue値は、getAnnotation(annotationClass) != null
と同等です。
デフォルト・メソッドの本体は、前述のコードとして指定されています。
isAnnotationPresent
、インタフェース: AnnotatedElement
annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
AnnotatedElement
AnnotatedElement.getAnnotation(Class)
の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈を調べることで、その型の1つ以上の注釈の検索が試みられることです。このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。getAnnotationsByType
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public Annotation[] getAnnotations()
AnnotatedElement
getAnnotations
、インタフェース: AnnotatedElement
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
AnnotatedElement
getDeclaredAnnotation
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、直接存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
AnnotatedElement
AnnotatedElement.getDeclaredAnnotation(Class)
の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈(存在する場合)を調べることで、その型の1つ以上の注釈の検索が試みられることです。このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。getDeclaredAnnotationsByType
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public Annotation[] getDeclaredAnnotations()
AnnotatedElement
getDeclaredAnnotations
、インタフェース: AnnotatedElement
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.