“数据”探测对象

数据探测对象包含片段的代码对象中由源代码引用的数据项的名称和类型。

“数据”对象是可选的。探测片段可以包含多个“数据”对象,但一个片段中的两个“数据”对象不能有相同类型或名称。

“数据”对象包含以下属性:
属性 描述
name 必需。必须指定有效的 Java 变量名称。
type 必需。下表中列出了可用的类型。
下表中列出并描述了各类型,并且指出了每种类型的数据类型:
类型 数据类型 描述
className 字符串

内部格式的所探测方法的类名,包括程序包名称。

示例:org/eclipse/hyades/SomeClass

methodName 字符串

内部格式的所探测方法的方法名称。对于 staticInitializer 片段无效。

构造函数有方法名称 <init>,静态类初始化方法将 <clinit> 作为方法名称。

methodSig 字符串

内部格式的方法实参和返回类型特征符。对于 staticInitializer 片段无效。

示例:(Ljava/lang/String;)I

thisObject 对象

传送给探测的方法的 this 对象(用于实例方法)。对于 staticInitializer 片段无效。

对于静态方法、应用于构造函数的 entry 片段以及当构造函数抛出异常时应用于构造函数的 exit 片段,thisObject 将为 null

args Object[] Object 引用的数组,这些引用代表所探测方法的实参。对于方法的每个实参(未计算 this 实参),该数组中都有一个元素。基本类型的实参被绑定到适当的引用类型的临时对象,例如:Integer 对应于 int。 如果方法没有实参,则 Object[] 数组的大小将为零。注意非静态内部类的构造函数对每个“内部”级别有一个隐藏的实参,所以实参数组包含的元素将比源代码中出现的元素多。对于 staticInitializer 片段无效。
returnedObject 对象 对正被返回的对象的引用。该类型仅可用于 exit 片段。如果探测的方法的返回类型是基本类型,则将把返回的值绑定至适当引用类型的临时对象。 如果该方法是 void(不返回值)或是异常引起的退出,则 returnedObject 将为 null。 仅在 afterCall 片段中有效。
exceptionObject 可抛出 对正被抛出的异常对象的引用。该类型仅可用于 catchexit 片段。如果该方法正常退出,则 exceptionObject 将为 null
isFinally 布尔 表明片段是从 finally 子句(真)还是从 catch 子句(假)调用的一个标志。仅在 catch 片段中有效。
staticField (变化) 由静态字段引用的对象。其类型与 staticField 对象中声明的类型相同。 仅当探测还有 staticField 对象时才有效。对于 callsite 探测无效。
classSourceFile 字符串 可从类文件的调试属性中获取的源文件名称信息。如果没有源文件信息,则 classSourceFile 将为 null。对于 Java,该值通常仅仅是文件名,不带路径信息。 对于 callsite 探测无效。
methodNames 字符串

编码的方法名称和特征符列表。 该列表中方法的顺序与 methodLineTables 中方法的顺序相同,并且与 methodNumber 数据项反映的排序相同。该列表将不包含任何由 Probekit 插入到类中去的方法的名称。

methodNames 字符串由一个或多个方法名称和特征符组成,由加号(“+”)分隔。方法特征符是 Java 内部格式。 例如:有两个方法、一个缺省构造函数、一个方法 run(该方法调用 String 并且返回 int)的类有以下 methodNames 字符串:<init>()V+run(Ljava/lang/String;)I

对于 callsite 探测无效。

methodLineTables 字符串 编码的行号列表,行号与类中代码的每个可执行单元相对应。该列表将不包含由 Probekit 插入到类中的可执行单元。关于编码的解释信息,请参阅 methodLineTables 字符串格式。对于 callsite 探测无效。
methodNumber 整数 methodNames 表中用于插入探测片段的方法的索引号。对于 callsite 探测或 staticInitializer 片段无效。
executableUnitNumber 整数 插入探测片段的可执行单元数。该数据类型仅对于 executableUnitcatch 探测片段有效。如果该方法没有源代码行信息,则它将显示为具有单个可执行单元,编号为零。
示例
<data
   type="className"
   name="__class" />

父主题:Probekit 元素参考

相关参考
staticInitializer 探测片断
StaticField 探测对象
methodLineTables 字符串格式
executableUnit 探测片段

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.