- 所有父级接口:
Mirror,ObjectReference,Value
提供对目标 VM 中数组对象及其组件的访问。每个数组组件都由一个
Value 对象镜像。数组组件总体上放置在 List 对象而不是数组中,以与 API 的其余部分保持一致并与其他 API 进行互操作。
- 自从:
- 1.3
-
字段摘要
在接口 com.sun.jdi.ObjectReference 中声明的字段
INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED -
方法总结
在接口 com.sun.jdi.Mirror 中声明的方法
toString, virtualMachine在接口 com.sun.jdi.ObjectReference 中声明的方法
disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads
-
方法详情
-
length
int length()返回此数组中的组件数。- 返回:
- 此数组中组件的整数计数。
-
getValue
返回数组组件值。- 参数:
index- 要检索的组件的索引- 返回:
-
给定索引处的
Value。 - 抛出:
IndexOutOfBoundsException- 如果index超出此数组的范围,即如果以下任一条件为真:index < 0 index >=
length()
-
getValues
返回此数组中的所有组件。- 返回:
Value对象的列表,每个对象对应于按数组索引排序的每个数组组件。对于零长度数组,返回一个空列表。
-
getValues
返回一系列数组组件。- 参数:
index- 要检索的第一个组件的索引length- 要检索的组件数,或 -1 以检索到此数组末尾的所有组件。- 返回:
Value对象的列表,每个请求的数组组件一个,按数组索引排序。当指定范围内没有元素时(例如length为零),返回一个空列表- 抛出:
IndexOutOfBoundsException- 如果用index和length指定的范围不在数组范围内,也就是说,如果以下任一条件为真:index < 0 index >
或如果length()length != -1和以下任一条件为真:length < 0 index + length >
length()
-
setValue
用另一个值替换数组组件。对象值的赋值必须与组件类型兼容(这意味着组件类型必须通过声明类的类加载器加载)。原始值必须是与组件类型兼容的分配,或者必须可转换为组件类型而不丢失信息。有关分配兼容性的更多信息,请参阅 JLS 5.2 节。
- 参数:
index- 要设置的组件的索引value- 新值- 抛出:
IndexOutOfBoundsException- 如果index超出此数组的范围,即如果以下任一条件为真:index < 0 index >=
length()InvalidTypeException- 如果value的类型与声明的数组组件类型不兼容。ClassNotLoadedException- 如果数组组件类型尚未通过适当的类加载器加载。VMCannotBeModifiedException- 如果 VirtualMachine 是只读的 - 请参阅VirtualMachine.canBeModified()。- 参见:
-
setValues
void setValues(List <? extends Value > values) throws InvalidTypeException , ClassNotLoadedException 用其他值替换所有数组组件。如果给定列表的大小大于数组,则忽略列表末尾的值。对象值的赋值必须与元素类型兼容(这意味着组件类型必须通过封闭类的类加载器加载)。原始值必须是与组件类型兼容的分配,或者必须可转换为组件类型而不丢失信息。有关分配兼容性的更多信息,请参阅 JLS 5.2 节。
- 参数:
values- 要放置在此数组中的Value对象的列表。如果values.size()小于数组的长度,则设置前values.size()个元素。- 抛出:
InvalidTypeException- 如果任何新的values与声明的数组组件类型不兼容。ClassNotLoadedException- 如果数组组件类型尚未通过适当的类加载器加载。VMCannotBeModifiedException- 如果 VirtualMachine 是只读的 - 请参阅VirtualMachine.canBeModified()。- 参见:
-
setValues
void setValues(int index, List <? extends Value > values, int srcIndex, int length) throws InvalidTypeException , ClassNotLoadedException 用其他值替换一系列数组组件。对象值的赋值必须与组件类型兼容(这意味着组件类型必须通过封闭类的类加载器加载)。原始值必须是与组件类型兼容的分配,或者必须可转换为组件类型而不丢失信息。有关分配兼容性的更多信息,请参阅 JLS 5.2 节。
- 参数:
index- 要设置的第一个组件的索引。values- 要放置在此数组中的Value对象的列表。srcIndex- 要使用的第一个源值的索引。length- 要设置的组件数,或 -1 将所有组件设置到此数组的末尾或values的末尾(以先到者为准)。- 抛出:
InvalidTypeException- 如果values的任何元素与声明的数组组件类型不兼容。IndexOutOfBoundsException-如果用index和length指定的数组范围不在阵列范围内,或者使用_N177787_和_N17777782_指定的源范围不在_以下任何一项为真:length < 0 index + length >
length()srcIndex + length > values.size()VMCannotBeModifiedException- 如果 VirtualMachine 是只读的 - 请参阅VirtualMachine.canBeModified()。ClassNotLoadedException- 参见:
-