- すべてのスーパー・インタフェース:
ConstantDesc,TypeDescriptor,TypeDescriptor.OfField<ClassDesc>
public 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)メソッドをコールします。
- APIの注:
- 将来、Java言語が許可すると、ClassDescが
sealedインタフェースになる場合があり、明示的に許可されている型を除いてサブクラス化が禁止されます。 非プラットフォーム・クラスは、ClassDescを直接実装することはできません。 - 導入されたバージョン:
- 12
- 関連項目:
ConstantDescs
-
ネストされたクラスのサマリー
インタフェースjava.lang.invoke.TypeDescriptorで宣言されたネストされたクラス/インタフェース
TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>, TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>,M extends TypeDescriptor.OfMethod<F,M>> -
メソッドのサマリー
修飾子と型 メソッド 説明 default ClassDescarrayType()default ClassDescarrayType(int rank)default ClassDesccomponentType()配列型を説明する場合はこのClassDescのコンポーネント型を返し、そうでない場合はnullを返します。StringdescriptorString()このタイプのフィールド・タイプ記述子文字列を返しますdefault StringdisplayName()この記述子で記述されている型の判読可能な名前を返します。booleanequals(Object o)等価性のために、指定されたオブジェクトをこの記述子と比較します。default booleanisArray()ClassDescが配列型を記述するかどうかを返します。default booleanisClassOrInterface()このClassDescがクラスまたはインタフェースのタイプを説明するかどうかを返します。default booleanisPrimitive()このClassDescがプリミティブ・タイプを説明するかどうかを返します。default ClassDescnested(String nestedName)default ClassDescnested(String firstNestedName, String... moreNestedNames)static ClassDescof(String name)クラスまたはインタフェース型に対して、"java.lang.String"などのクラスまたはインタフェースの名前を指定してClassDescを返します。static ClassDescof(String packageName, String className)クラスまたはインタフェース・タイプに対してClassDescを返します。クラスまたはインタフェースのパッケージ名および未修飾(simple)名が指定されます。static ClassDescofDescriptor(String descriptor)クラス、インタフェース、配列またはプリミティブ・タイプの記述子文字列に対してClassDescを指定します。default StringpackageName()クラスまたはインタフェース・タイプを説明する場合は、このClassDescのパッケージ名を返します。
-
メソッドの詳細
-
of
クラスまたはインタフェース型に対して、"java.lang.String"などのクラスまたはインタフェースの名前を指定してClassDescを返します。 (配列型の記述子を作成するには、ofDescriptor(String)またはarrayType()を使用します。プリミティブ型の記述子を作成するには、ofDescriptor(String)を使用するか、ConstantDescsの事前定義された定数を使用)。- パラメータ:
name- 完全修飾された(dot-separated)バイナリ・クラス名- 戻り値:
- 希望するクラスの記述はClassDesc
- 例外:
NullPointerException- 引数がnullの場合IllegalArgumentException- 名前文字列が正しいフォーマットでない場合
-
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 ("フィールド記述子")を参照してください。 - パラメータ:
descriptor- フィールド記述子文字列- 戻り値:
- 希望するクラスの記述はClassDesc
- 例外:
NullPointerException- 引数がnullの場合IllegalArgumentException- 名前文字列が正しいフォーマットでない場合- Java Virtual Machine仕様を参照してください:
-
4.3.2 フィールド記述子
「4.4.1 CONSTANT_Class_info構造」
-
arrayType
default ClassDesc arrayType()- 定義:
- インタフェース
TypeDescriptor.OfField<ClassDesc>内のarrayType - 戻り値:
- 配列型について説明するClassDesc
- 例外:
IllegalStateException- 結果のClassDescが255よりも大きい配列ランクになる場合- Java Virtual Machine仕様を参照してください:
-
4.4.1 CONSTANT_Class_info構造
-
arrayType
default 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
default boolean isClassOrInterface()このClassDescがクラスまたはインタフェースのタイプを説明するかどうかを返します。- 戻り値:
- このClassDescがクラス・タイプとインタフェース・タイプのどちらを記述するのか
-
componentType
default ClassDesc componentType()配列型を説明する場合はこのClassDescのコンポーネント型を返し、そうでない場合はnullを返します。- 定義:
- インタフェース
TypeDescriptor.OfField<ClassDesc>内のcomponentType - 戻り値:
- コンポーネント・タイプを記述するClassDesc、またはこの記述子が配列タイプを記述しない場合は
null
-
packageName
default String packageName()クラスまたはインタフェース・タイプを説明する場合は、このClassDescのパッケージ名を返します。- 戻り値:
- パッケージ名、またはクラスがデフォルト・パッケージ内にある場合は空の文字列、クラスまたはインタフェース・タイプを記述しない場合はこのClassDesc
-
displayName
default String displayName()この記述子で記述されている型の判読可能な名前を返します。- 実装要件:
デフォルトの実装では、プリミティブ・タイプに対して単純な名前(e.g.,
int)、クラスまたはインタフェース・タイプに対して修飾されていないクラス名、またはコンポーネント・タイプの表示名が、配列タイプに対して適切な数の[]ペアで付加されます。- 戻り値:
- 判読可能な名前
-
descriptorString
String descriptorString()このタイプのフィールド・タイプ記述子文字列を返します- 定義:
- インタフェース
TypeDescriptor内のdescriptorString - 戻り値:
- 記述子文字列
- Java Virtual Machine仕様を参照してください:
-
4.3.2 フィールド記述子
-
equals
boolean equals(Object o)等価性のために、指定されたオブジェクトをこの記述子と比較します。trueを返します。指定されたオブジェクトもClassDescであり、その両方で同じ型を記述している場合のみ返されます。- オーバーライド:
equals、クラス:Object- パラメータ:
o- 他のオブジェクト- 戻り値:
- この記述子が他のオブジェクトと等しいかどうか
- 関連項目:
Object.hashCode()、HashMap
-