- すべてのスーパー・インタフェース:
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 ClassDesc
arrayType()
default ClassDesc
arrayType(int rank)
default ClassDesc
componentType()
配列型を説明する場合はこのClassDescのコンポーネント型を返し、そうでない場合はnull
を返します。String
descriptorString()
このタイプのフィールド・タイプ記述子文字列を返しますdefault String
displayName()
この記述子で記述されている型の判読可能な名前を返します。boolean
equals(Object o)
等価性のために、指定されたオブジェクトをこの記述子と比較します。default boolean
isArray()
ClassDescが配列型を記述するかどうかを返します。default boolean
isClassOrInterface()
このClassDescがクラスまたはインタフェースのタイプを説明するかどうかを返します。default boolean
isPrimitive()
このClassDescがプリミティブ・タイプを説明するかどうかを返します。default ClassDesc
nested(String nestedName)
default ClassDesc
nested(String firstNestedName, String... moreNestedNames)
static ClassDesc
of(String name)
クラスまたはインタフェース型に対して、"java.lang.String"
などのクラスまたはインタフェースの名前を指定してClassDescを返します。static ClassDesc
of(String packageName, String className)
クラスまたはインタフェース・タイプに対してClassDescを返します。クラスまたはインタフェースのパッケージ名および未修飾(simple)名が指定されます。static ClassDesc
ofDescriptor(String descriptor)
クラス、インタフェース、配列またはプリミティブ・タイプの記述子文字列に対してClassDescを指定します。default String
packageName()
クラスまたはインタフェース・タイプを説明する場合は、この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つの場合はnull
IllegalArgumentException
- パッケージ名またはクラス名の形式が正しくない場合
-
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
-