インタフェースClassDesc
- すべてのスーパー・インタフェース:
ConstantDesc,TypeDescriptor,TypeDescriptor.OfField<ClassDesc>
public sealed interface ClassDesc extends ConstantDesc, TypeDescriptor.OfField<ClassDesc>
Class定数の「名目記述子」。
すべてのプリミティブ・タイプを含む共通システム・タイプの場合、ConstantDescsにはClassDescの事前定義された定数があります。 (java.lang.constant APIは、voidをプリミティブ・タイプとみなします。) クラス・タイプまたはインタフェース・タイプに対してClassDescを作成するには、of(java.lang.String)またはofDescriptor(String)を使用します。配列タイプにClassDescを作成するには、ofDescriptor(String)を使用するか、最初にコンポーネント・タイプのClassDescを取得してからarrayType()またはarrayType(int)メソッドをコールします。
- 導入されたバージョン:
- 12
- 関連項目:
-
ネストされたクラスのサマリー
インタフェースjava.lang.invoke.TypeDescriptorで宣言されたネストされたクラス/インタフェース
TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>, TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>, M extends TypeDescriptor.OfMethod<F,M>> -
メソッドのサマリー
修飾子と型メソッド説明arrayType(int rank) default ClassDesc配列型を説明する場合はこのClassDescのコンポーネント型を返し、そうでない場合はnullを返します。このタイプのフィールド・タイプ記述子文字列を返しますこのClassDescの判読可能な名前を返します。boolean等価性のために、指定されたオブジェクトをこの記述子と比較します。default booleanisArray()ClassDescが配列型を記述するかどうかを返します。default booleanこのClassDescがクラスまたはインタフェースのタイプを説明するかどうかを返します。default booleanこのClassDescがプリミティブ・タイプを説明するかどうかを返します。default ClassDescdefault ClassDescstatic ClassDescクラスまたはインタフェース型に対して、"java.lang.String"などのクラスまたはインタフェースの名前を指定してClassDescを返します。static ClassDescクラスまたはインタフェース・タイプに対してClassDescを返します。クラスまたはインタフェースのパッケージ名および未修飾(simple)名が指定されます。static ClassDescofDescriptor(String descriptor) クラス、インタフェース、配列またはプリミティブ・タイプの記述子文字列に対してClassDescを指定します。static ClassDescofInternalName(String name) "java/lang/String"などの内部形式のクラスまたはインタフェースの名前を指定して、クラスまたはインタフェース・タイプのClassDescを返します。default Stringクラスまたはインタフェース・タイプを説明する場合は、このClassDescのパッケージ名を返します。Class<?>
-
メソッドの詳細
-
of
クラスまたはインタフェース型に対して、"java.lang.String"などのクラスまたはインタフェースの名前を指定してClassDescを返します。 (配列型の記述子を作成するには、ofDescriptor(String)またはarrayType()を使用します。プリミティブ型の記述子を作成するには、ofDescriptor(String)を使用するか、ConstantDescsの事前定義された定数を使用)。- パラメータ:
name- 完全修飾された(dot-separated)バイナリ・クラス名- 戻り値:
- 希望するクラスの記述はClassDesc
- スロー:
NullPointerException- 引数がnullの場合IllegalArgumentException- 名前文字列が正しいフォーマットでない場合- 関連項目:
-
ofInternalName
"java/lang/String"などの内部形式のクラスまたはインタフェースの名前を指定して、クラスまたはインタフェース・タイプのClassDescを返します。- APIのノート:
- 配列タイプの記述子を作成するには、
ofDescriptor(String)またはarrayType()を使用してプリミティブ型の記述子を作成するか、ofDescriptor(String)を使用するか、ConstantDescsの事前定義済定数を使用します。 - パラメータ:
name- 内部(slash-separated)形式の完全修飾クラス名- 戻り値:
- 希望するクラスの記述はClassDesc
- スロー:
NullPointerException- 引数がnullの場合IllegalArgumentException- 名前文字列が正しいフォーマットでない場合- Java Virtual Machine仕様を参照してください:
-
「4.2.1 バイナリ・クラス名およびインタフェース名」
- 導入されたバージョン:
- 20
- 関連項目:
-
of
クラスまたはインタフェース・タイプに対してClassDescを返します。クラスまたはインタフェースのパッケージ名および未修飾(simple)名が指定されます。- パラメータ:
packageName- パッケージ名(dot-separated);パッケージ名が空の文字列の場合、そのクラスは名前のないパッケージ内にあるとみなされます。className- 未修飾の(simple)クラス名- 戻り値:
- 希望するクラスの記述はClassDesc
- スロー:
NullPointerException- 引数が1つの場合はnullIllegalArgumentException- パッケージ名またはクラス名の形式が正しくない場合
-
ofDescriptor
クラス、インタフェース、配列またはプリミティブ・タイプの記述子文字列に対してClassDescを指定します。- APIのノート:
- 非配列タイプのフィールド・タイプ記述子文字列は、プリミティブ・タイプ(
"J", "I", "C", "S", "B", "D", "F", "Z", "V")に対応する1文字のコード、または"L"の文字の後にクラスの完全修飾バイナリ名が続き、";"が次に続く。 配列型のフィールド型記述子は、文字"["に続いてコンポーネント型のフィールド記述子です。 有効な型記述子文字列の例には、"Ljava/lang/String;","I","[I","V","[Ljava/lang/String;"などがあります。詳細は、JVMS 4.3.2 ("Field Descriptors")を参照してください。 - パラメータ:
descriptor- フィールド記述子文字列- 戻り値:
- 希望するクラスの記述はClassDesc
- スロー:
NullPointerException- 引数がnullの場合IllegalArgumentException- 記述子文字列が正しい形式でない場合- Java Virtual Machine仕様を参照してください:
-
4.3.2 フィールド記述子
4.4.1 CONSTANT_Class_info構造 - 関連項目:
-
arrayType
ClassDesc arrayType()- 定義:
- インタフェース
TypeDescriptor.OfField<ClassDesc>内のarrayType - 戻り値:
- 配列型について説明するClassDesc
- スロー:
IllegalStateException- 結果のClassDescが255よりも大きい配列ランクになる場合- Java Virtual Machine仕様を参照してください:
-
4.4.1 CONSTANT_Class_info構造
-
arrayType
ClassDesc arrayType(int rank) - パラメータ:
rank- 配列のランク- 戻り値:
- 配列型について説明するClassDesc
- スロー:
IllegalArgumentException- ランクがゼロ以下の場合、または結果の配列タイプのランクが255より大きい場合- Java Virtual Machine仕様を参照してください:
-
4.4.1 CONSTANT_Class_info構造
-
nested
- APIのノート:
- 例: 記述子
dがクラスjava.util.Mapを説明する場合、クラスjava.util.Map.Entryの記述子はd.nested("Entry")によって取得できます。 - パラメータ:
nestedName- ネストされたクラスの修飾されていない名前- 戻り値:
- ネストされたクラスを記述するClassDesc
- スロー:
NullPointerException- 引数がnullの場合IllegalStateException- このClassDescがクラスまたはインタフェース型を記述しない場合IllegalArgumentException- ネストされたクラス名が無効な場合
-
nested
- パラメータ:
firstNestedName- ネストされたクラスの最初のレベルの未修飾名moreNestedNames- ネストされたクラスの残りのレベルの未修飾名- 戻り値:
- ネストされたクラスを記述するClassDesc
- スロー:
NullPointerException- 引数またはその内容がnullの場合IllegalStateException- このClassDescがクラスまたはインタフェース型を記述しない場合IllegalArgumentException- ネストされたクラス名が無効な場合
-
isArray
default boolean isArray()ClassDescが配列型を記述するかどうかを返します。- 定義:
- インタフェース
TypeDescriptor.OfField<ClassDesc>内のisArray - 戻り値:
- ClassDescが配列型を記述するかどうか
-
isPrimitive
default boolean isPrimitive()このClassDescがプリミティブ・タイプを説明するかどうかを返します。- 定義:
- インタフェース
TypeDescriptor.OfField<ClassDesc>内のisPrimitive - 戻り値:
- このClassDescがプリミティブ・タイプを説明するかどうか
-
isClassOrInterface
-
componentType
default ClassDesc componentType()配列型を説明する場合はこのClassDescのコンポーネント型を返し、そうでない場合はnullを返します。- 定義:
- インタフェース
TypeDescriptor.OfField<ClassDesc>内のcomponentType - 戻り値:
- コンポーネント・タイプを記述するClassDesc、またはこの記述子が配列タイプを記述しない場合は
null
-
packageName
-
displayName
String displayName()このClassDescの判読可能な名前を返します。 プリミティブ型の場合、このメソッドは単純名(int)を返します。 クラス型またはインタフェース型の場合、このメソッドは修飾されていないクラス名を返します。 配列型の場合、このメソッドは、適切な数の[]ペアのサフィクスが付いたコンポーネント・タイプの判読可能な名前を返します。- 戻り値:
- この
ClassDescの判読可能な名前
-
descriptorString
String descriptorString()このタイプのフィールド・タイプ記述子文字列を返します- 定義:
- インタフェース
TypeDescriptor内のdescriptorString - 戻り値:
- 記述子文字列
- Java Virtual Machine仕様を参照してください:
-
4.3.2 フィールド記述子
-
resolveConstantDesc
Class<?> resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationException インタフェースからコピーされた説明:ConstantDescJVMS 5.4.3の解決動作およびJVMS 5.4.4のアクセス制御動作をエミュレートして、この記述子を反映して解決します。 解決およびアクセス制御コンテキストは、MethodHandles.Lookupパラメータによって提供されます。 結果の値のキャッシュは実行されません。- 定義:
- インタフェース
ConstantDesc内のresolveConstantDesc - パラメータ:
lookup- 名前解決およびアクセス制御コンテキストを提供するためのMethodHandles.Lookup- 戻り値:
- 解決済定数値
- スロー:
ReflectiveOperationException- 解決の過程でクラス、メソッドまたはフィールドを反映的に解決できなかった場合- 導入されたバージョン:
- 21
-
equals
-