- 所有父级接口:
ConstantDesc,TypeDescriptor,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>> -
方法总结
修饰符和类型方法描述default ClassDescdefault ClassDescarrayType(int rank) default ClassDesc返回此 ClassDesc 的组件类型,如果它描述数组类型,否则返回null。返回此类型的字段类型描述符字符串default String返回此描述符描述的类型的人类可读名称。boolean比较指定对象与此描述符是否相等。default booleanisArray()返回此 ClassDesc 是否描述数组类型。default boolean返回此 ClassDesc 是否描述类或接口类型。default boolean返回此 ClassDesc 是否描述原始类型。default ClassDescdefault ClassDescstatic ClassDesc返回类或接口类型的 ClassDesc,给定类或接口的名称,例如"java.lang.String"。static ClassDesc给定类或接口的包名称和非限定(简单)名称,返回类或接口类型的 ClassDesc。static ClassDescofDescriptor(String descriptor) 给定类、接口、数组或原始类型的描述符字符串,返回 ClassDesc。static ClassDescofInternalName(String name) 返回类或接口类型的 ClassDesc,给出内部形式的类或接口的名称,例如"java/lang/String"。default String返回这个 ClassDesc 的包名,如果它描述了一个类或接口类型。在接口 java.lang.constant.ConstantDesc 中声明的方法
resolveConstantDesc
-
方法详情
-
of
返回类或接口类型的 ClassDesc,给定类或接口的名称,例如"java.lang.String"。 (要为数组类型创建描述符,请使用ofDescriptor(String)或arrayType();要为基本类型创建描述符,请使用ofDescriptor(String)或使用ConstantDescs中的预定义常量)。- 参数:
name- 完全限定(点分隔)二进制类名- 返回:
- ClassDesc 描述所需的类
- 抛出:
NullPointerException- 如果参数是nullIllegalArgumentException- 如果名称字符串的格式不正确- 参见:
-
ofInternalName
返回类或接口类型的 ClassDesc,给出内部形式的类或接口的名称,例如"java/lang/String"。- API 注意:
-
要为数组类型创建描述符,请使用
ofDescriptor(String)或arrayType();要为原始类型创建描述符,请使用ofDescriptor(String)或使用ConstantDescs中的预定义常量。 - 参数:
name- 完全限定的类名,采用内部(斜杠分隔)形式- 返回:
- ClassDesc 描述所需的类
- 抛出:
NullPointerException- 如果参数是nullIllegalArgumentException- 如果名称字符串的格式不正确- 看Java 虚拟机规范:
-
4.2.1 二进制类和接口名称
- 自从:
- 20
- 参见:
-
of
给定类或接口的包名称和非限定(简单)名称,返回类或接口类型的 ClassDesc。- 参数:
packageName- 包名(点分隔);如果包名是空字符串,则该类被认为在未命名的包中className- 不合格(简单)类名- 返回:
- ClassDesc 描述所需的类
- 抛出:
NullPointerException- 如果任何参数是nullIllegalArgumentException- 如果包名或类名的格式不正确
-
ofDescriptor
给定类、接口、数组或原始类型的描述符字符串,返回 ClassDesc。- API 注意:
-
非数组类型的字段类型描述符字符串是对应于基本类型 (
"J", "I", "C", "S", "B", "D", "F", "Z", "V") 的单字母代码,或者是字母"L",后跟类的完全限定二进制名称,然后是";"。数组类型的字段类型描述符是字符"["后跟组件类型的字段描述符。有效类型描述符字符串的示例包括"Ljava/lang/String;"、"I"、"[I"、"V"、"[Ljava/lang/String;"等。有关详细信息,请参阅 JVMS 4.3.2 (“字段描述符”)。 - 参数:
descriptor- 字段描述符字符串- 返回:
- ClassDesc 描述所需的类
- 抛出:
NullPointerException- 如果参数是nullIllegalArgumentException- 如果名称字符串的格式不正确- 看Java 虚拟机规范:
-
4.3.2 字段描述符
4.4.1 CONSTANT_Class_info结构
- 参见:
-
arrayType
- 指定者:
arrayType在接口TypeDescriptor.OfField<ClassDesc>中- 返回:
- ClassDesc 描述数组类型
- 抛出:
IllegalStateException- 如果生成的 ClassDesc 的数组等级大于 255- 看Java 虚拟机规范:
-
4.4.1 CONSTANT_Class_info结构
-
arrayType
- 参数:
rank- 数组的秩- 返回:
- ClassDesc 描述数组类型
- 抛出:
IllegalArgumentException- 如果等级小于或等于零,或者结果数组类型的等级大于 255- 看Java 虚拟机规范:
-
4.4.1 CONSTANT_Class_info结构
-
nested
- API 注意:
-
示例:如果描述符
d描述类java.util.Map,则类java.util.Map.Entry的描述符可以通过d.nested("Entry")获得。 - 参数:
nestedName- 嵌套类的非限定名称- 返回:
- 一个 ClassDesc 描述嵌套类
- 抛出:
NullPointerException- 如果参数是nullIllegalStateException- 如果这个 ClassDesc 没有描述类或接口类型IllegalArgumentException- 如果嵌套类名无效
-
nested
- 参数:
firstNestedName- 第一层嵌套类的非限定名称moreNestedNames- 嵌套类剩余级别的非限定名称- 返回:
- 一个 ClassDesc 描述嵌套类
- 抛出:
NullPointerException- 如果任何参数或其内容是nullIllegalStateException- 如果这个 ClassDesc 没有描述类或接口类型IllegalArgumentException- 如果嵌套类名无效
-
isArray
default boolean isArray()返回此 ClassDesc 是否描述数组类型。- 指定者:
isArray在接口TypeDescriptor.OfField<ClassDesc>中- 返回:
- 这个ClassDesc是否描述了一个数组类型
-
isPrimitive
default boolean isPrimitive()返回此 ClassDesc 是否描述原始类型。- 指定者:
isPrimitive在接口TypeDescriptor.OfField<ClassDesc>中- 返回:
- 这个ClassDesc是否描述了原始类型
-
isClassOrInterface
default boolean isClassOrInterface()返回此 ClassDesc 是否描述类或接口类型。- 返回:
- 这个 ClassDesc 描述的是类还是接口类型
-
componentType
返回此 ClassDesc 的组件类型,如果它描述数组类型,否则返回null。- 指定者:
componentType在接口TypeDescriptor.OfField<ClassDesc>中- 返回:
-
一个 ClassDesc 描述组件类型,或者
null如果这个描述符没有描述一个数组类型
-
packageName
返回这个 ClassDesc 的包名,如果它描述了一个类或接口类型。- 返回:
- 包名,如果类在默认包中,则为空字符串,或者这个 ClassDesc 没有描述类或接口类型
-
displayName
返回此描述符描述的类型的人类可读名称。- 实现要求:
-
默认实现返回基本类型的简单名称(例如
int),类或接口类型的非限定类名,或组件类型的显示名称后缀适当数量的[]对数组类型。 - 返回:
- 人类可读的名字
-
descriptorString
String descriptorString()返回此类型的字段类型描述符字符串- 指定者:
descriptorString在接口TypeDescriptor中- 返回:
- 描述符字符串
- 看Java 虚拟机规范:
-
4.3.2 字段描述符
-
equals
比较指定对象与此描述符是否相等。返回true当且仅当指定对象也是 ClassDesc 并且两者描述相同的类型。
-