模块 jdk.jdi

接口 ArrayReference

所有父级接口:
Mirror , ObjectReference , Value

public interface ArrayReference extends ObjectReference
提供对目标 VM 中数组对象及其组件的访问。每个数组组件都由一个 Value 对象镜像。数组组件总体上放置在 List 对象而不是数组中,以与 API 的其余部分保持一致并与其他 API 进行互操作。
自从:
1.3
  • 方法详情

    • length

      int length()
      返回此数组中的组件数。
      返回:
      此数组中组件的整数计数。
    • getValue

      Value  getValue(int index)
      返回数组组件值。
      参数:
      index - 要检索的组件的索引
      返回:
      给定索引处的 Value
      抛出:
      IndexOutOfBoundsException - 如果 index 超出此数组的范围,即如果以下任一条件为真:
        index < 0
        index >= length()  
    • getValues

      List <Value > getValues()
      返回此数组中的所有组件。
      返回:
      Value 对象的列表,每个对象对应于按数组索引排序的每个数组组件。对于零长度数组,返回一个空列表。
    • getValues

      List <Value > getValues(int index, int length)
      返回一系列数组组件。
      参数:
      index - 要检索的第一个组件的索引
      length - 要检索的组件数,或 -1 以检索到此数组末尾的所有组件。
      返回:
      Value 对象的列表,每个请求的数组组件一个,按数组索引排序。当指定范围内没有元素时(例如 length 为零),返回一个空列表
      抛出:
      IndexOutOfBoundsException - 如果用 indexlength 指定的范围不在数组范围内,也就是说,如果以下任一条件为真:
        index < 0
        index > length()  
      或如果 length != -1 和以下任一条件为真:
        length < 0
        index + length > length() 
    • setValue

      void setValue(int index, Value  value) throws InvalidTypeException , ClassNotLoadedException
      用另一个值替换数组组件。

      对象值的赋值必须与组件类型兼容(这意味着组件类型必须通过声明类的类加载器加载)。原始值必须是与组件类型兼容的分配,或者必须可转换为组件类型而不丢失信息。有关分配兼容性的更多信息,请参阅 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-如果用indexlength指定的数组范围不在阵列范围内,或者使用_N177787_和_N17777782_指定的源范围不在_以下任何一项为真:
        length < 0
        index + length > length() 
        srcIndex + length > values.size() 
      VMCannotBeModifiedException - 如果 VirtualMachine 是只读的 - 请参阅 VirtualMachine.canBeModified()
      ClassNotLoadedException
      参见: