Java类的内存表示。此表示用作查询类相关信息的起点,通常是一个过程称为“反射”。基本上有三种类型等级实例:表示真实类和接口的实例,表示基元类型,以及那些表示数组类的基元类型。
等级
它们表示类中的普通类或接口等级制度。与这些关联的名称等级实例很简单它表示的类或接口的完全限定类名。除了这个人类可读的名称之外,每个类还通过所谓的签名,即字母“L”,后跟类名和分号(“;”)。签名是运行时系统在内部用于标识类(例如在DEX文件中)。
它们表示标准Java原语类型,因此共享它们的名称(例如,“int”表示整数基元类型)。尽管如此无法基于这些创建新实例等级实例,它们对于提供反射信息仍然很有用,并且作为数组类的组件类型。有一个等级每个实例基元类型,其签名为:
整数
B类
字节
S公司
短的
我
J型
长的
F类
浮动
D类
双重的
C类
烧焦
Z轴
布尔值
五
这些表示Java数组的类。有一个这样的等级每个数组叶组件类型和arity组合的实例(数量尺寸)。在这种情况下,与等级由一个或多个左方括号组成(数组中每个维度一个)然后是表示叶组件类型的类的签名,可以是对象类型或基元类型。签名等级表示数组类型与其名称相同。示例数组类签名的为:
[我
整数[]
[Ljava/lang/String;
字符串[]
[[[C(C)]
字符[][][]
施工单位
字段
方法
无效的
枚举
类型
班
实施
包裹
类型变量
对象
wait()
通知()
notifyAll()
铸造这个等级表示给定类的子类。如果成功,这等级返回;否则为类Cast异常被抛出。
类Cast异常
将给定对象强制转换为此等级。如果对象是无效的那么结果也是无效的。
返回由此表示的类的断言状态等级.根据类加载器启用/禁用断言,包或类在运行时默认。
返回一个等级对象,该对象用名字。名称应为非本原类的名称,如这个类别定义。使用此方法无法找到基元类型;使用int类或整数。类型而不是。
类别定义
int类
整数。类型
如果类尚未加载,则首先使用给定的类加载器加载。如果类尚未初始化并且应初始化是真的,类将被初始化。
应初始化
如果类尚未加载,则加载并初始化它第一。这是通过调用类的类装入器完成的或其父类装入器之一。静态初始值设定项可能作为这次通话的结果。
返回包含此类所有注释的数组。如果没有批注然后返回一个空数组。
获取声明注释()
返回此类的规范名称。如果此类没有Java语言规范中定义的规范名称,然后方法返回无效的。
返回用于加载由这等级.实现可自由返回无效的对于由引导类加载器加载的类。安卓系统但是,引用实现总是返回对实际类加载器。
返回包含等级所有公共类的对象以及属于此类成员的接口。这包括公众成员继承自超类和接口。如果没有这样的类成员,或者如果此对象表示基元类型,则表示数组返回长度为0的。
返回一个等级表示组件类型的对象,如果此类表示数组类型。退换商品无效的如果这个类不表示数组类型。数组类型的组件类型为数组元素的类型。
返回一个施工单位代表公众的对象匹配给定参数类型的构造函数。(类[])null等效于空数组。
(类[])null
请参见getMethod(字符串,类>...)有关搜索顺序的详细信息。使用getDeclaredConstructor(类>...)如果你不想搜索超类。
getMethod(字符串,类>...)
getDeclaredConstructor(类>...)
返回包含施工单位所有公共对象此的构造函数等级.如果有不是公共构造函数,或者如果是等级表示一个数组类,则返回一个空数组。
获取声明的构造函数()
返回直接在类上定义的注释由以下内容表示等级。继承的批注不是包括在结果中。如果根本没有注释,则为空返回数组。
获取注释()
返回包含等级所有类的对象和声明为该类的成员的接口等级代表。如果没有声明类或接口,或者如果此类表示数组类、基元类型或void,然后是返回空数组。
返回一个施工单位表示构造函数的对象匹配类声明的给定参数类型由以下内容表示等级。(类[])null等效于空数组。
使用getConstructor(类>...)如果你想搜索超类。
getConstructor(类>...)
返回包含施工单位所有对象在此表示的类中声明的构造函数等级.如果没有构造函数,或者等级表示数组类、基元类型或void,则返回空数组。
获取构造函数()
返回一个字段具有给定名称的字段的对象在这个表示的类中声明等级。
getField(字符串)
返回包含字段声明的所有字段的对象在这个类中等级。如果没有字段或如果是这样等级表示数组类、基元类型或void然后返回一个空数组。
获取字段()
返回一个方法对象,该对象表示匹配类声明的给定名称和参数类型由以下内容表示等级。(类[])null等效于空数组。
请参见getMethod(字符串,类>...)如果你想搜索超类。
名称
返回一个数组,该数组包含方法所有方法的对象在此表示的类中声明等级。如果没有方法或如果这是等级表示数组类,原语类型或void,则返回空数组。
获取方法()
返回声明等级这个的等级.退货无效的如果该类不是另一个类的成员,或者如果等级表示数组类、基元类型或void。
返回封闭等级这个的等级.如果没有方法返回的封闭类无效的。
返回封闭施工单位这个的等级,如果是匿名或本地/自动类;否则无效的。
返回封闭方法这个的等级,如果是匿名或本地/自动类;否则无效的。
返回枚举与此关联的常量等级。退换商品无效的如果是这样等级不代表枚举类型。
返回一个字段对象,该对象用名字。此方法首先搜索由这等级,然后是C实现的接口,最后是C的超类。
getDeclaredField(字符串)
返回一个数组,该数组包含字段所有公共字段的对象代表的C类等级。可以声明字段在C中,它实现的接口或在C的超类中返回数组中的元素没有特定的顺序。
如果没有公共字段或此类表示数组类,原始类型或空隙则返回一个空数组。
空隙
获取声明字段()
返回类型的接口等级直接地实现。如果等级表示基元类型或空隙然后返回一个空数组。
返回类型表示此的超类班。
返回的数组等级与接口匹配的对象在中实施所表示类的声明通过这个等级。数组中元素的顺序为与原始类声明中的顺序相同。如果班级不实现任何接口,则返回空数组。
返回一个方法对象,该对象用表示公共方法给定的名称和参数类型。(类别[])为null等效于空数组。
(类别[])为null
此方法首先搜索由以下内容表示的类C等级,则C的超类,最后是C及其超类实现的接口。
使用getDeclaredMethod(字符串,类>...)如果你不想搜索超类。
getDeclaredMethod(字符串,类>...)
返回包含方法所有公共方法的对象代表的C类等级。方法可以是在C中声明,它实现的接口或在C的超类中声明。返回数组中的元素没有特定的顺序。
如果没有公共方法或等级代表基元类型或空隙然后返回一个空数组。
获取声明方法()
返回表示所表示类的修饰符的整数通过这个等级。返回值是位的组合由中的常量定义修饰符类。
修饰符
返回此等级。对于所用格式的描述,请参见的类定义等级。
返回包裹其中此所表示的类等级是成员。退换商品无效的如果没有包裹对象是由类的类装入器创建的。
返回null。
返回给定资源的URL,如果找不到该资源,则返回null。资源名称和URL之间的映射由类的类加载器管理。
类装载器
返回给定资源内容的只读流,如果资源找不到。资源名称和流之间的映射由类的类加载器管理。
返回null。(在Android上类装载器可以从多个dex文件加载类。任何给定dex文件中的所有类都将具有相同的签名者,但不同的dex文件可能具有不同的签名者。这与原版不太吻合类装载器-基于的模型获取签名者.)
获取签名者
返回此等级作为在源代码中定义。如果没有名称(即类是anonymous),则返回空字符串。如果接收器是阵列然后是附加了方括号的基础类型的名称(对于例子“整数[]”)返回。
“整数[]”
返回等级对象的超类由此表示的类等级.如果是这样等级代表这个对象类、基元类型、接口或void,然后方法返回无效的.如果是这样等级表示数组然后类对象类被返回。
返回包含类型变量类型的对象由此表示的泛型类声明的变量等级。如果类不是泛型,则返回空数组。
测试是否等级表示注释类。
指示此元素是否具有带指定的批注类型(包括继承的批注)。
真的
假
测试此等级是匿名。
测试此等级是一个数组类。
测试给定的类类型是否可以转换为类由以下内容表示等级。可以通过身份进行转换转换或扩大参考转换(如果接收器或参数表示基元类型,仅表示标识转换适用)。
c(c)
测试此等级是一个枚举。
测试给定对象是否可以强制转换为类由以下内容表示等级。这是运行时版本的运算符操作员。
运算符
测试这是否等级表示接口。
测试此等级已定义本地。
测试此等级是成员类。
测试这是否等级表示基元类型。
测试这是否等级表示合成类型。
返回此等级,通过调用默认(即零参数)构造函数创建。如果没有这样的构造函数,或者如果创建失败(或者是因为可用内存不足或由于构造函数),一个实例化异常被抛出。如果默认构造函数存在,但无法从上下文中访问方法,则非法访问例外被抛出。
实例化异常
非法访问例外
返回一个字符串,该字符串包含此对象。鼓励子类重写此方法并提供考虑对象类型和数据的实现。这个默认实现等效于以下表达式:
getClass().getName()+“@”+整数.toHexString(hashCode())
请参见编写有用的toString(字符串)方法如果你打算实现你自己的toString(字符串)方法。
toString(字符串)