モジュール jdk.jdi
パッケージ com.sun.jdi

インタフェースArrayReference

すべてのスーパー・インタフェース:
Mirror, ObjectReference, Value

public interface ArrayReference extends ObjectReference
ターゲットVM内の配列オブジェクトおよびそのコンポーネントへのアクセスを提供します。 各配列コンポーネントは、Valueオブジェクトによってミラー化されます。 配列コンポーネントは、APIのその他の部分との一貫性と、その他のAPIとの相互運用性を確保するために、配列ではなくListオブジェクト内に全体として置かれます。
導入されたバージョン:
1.3
  • メソッドの詳細

    • length

      int length()
      この配列のコンポーネントの数を返します。
      戻り値:
      この配列内のコンポーネントの数の整数値。
    • getValue

      Value getValue(int index)
      配列コンポーネントの値を返します。
      パラメータ:
      index - 取得するコンポーネントのインデックス
      戻り値:
      指定されたインデックス位置のValue
      例外:
      IndexOutOfBoundsException - indexがこの配列の範囲外である場合、つまり次のどちらかがtrueである場合:
          index < 0
          index >= length() 
    • getValues

      List<Value> getValues()
      この配列内のすべてのコンポーネントを返します。
      戻り値:
      Valueオブジェクトのリスト。配列索引により指定された各配列コンポーネントに1つ。 長さがゼロの配列の場合、空のリストが返される。
    • getValues

      List<Value> getValues(int index, int length)
      配列コンポーネントの範囲を返します。
      パラメータ:
      index - 取得する最初のコンポーネントのインデックス
      length - 取得するコンポーネントの数。配列の最後までのすべてのコンポーネントを取得する場合は -1。
      戻り値:
      Valueオブジェクトのリスト。配列索引により指定された、要求された各配列コンポーネントに1つ。 指定された範囲に要素が存在しない場合(lengthがゼロの場合など)、空のリストが返される
      例外:
      IndexOutOfBoundsException - indexlengthで指定された範囲が配列の範囲内に収まっていない場合、つまり次のどちらかがtrueである場合
          index < 0
          index > length() 
      または、length != -1で、次のどちらかがtrueの場合
          length < 0
          index + length >  length()
    • setValue

      void setValue(int index, Value value) throws InvalidTypeException, ClassNotLoadedException
      配列コンポーネントを別の値に置き換えます。

      オブジェクト値は、このコンポーネントの型との代入互換性を持たなければいけません(これは、このコンポーネントの型は、宣言クラスのクラス・ローダーによってロードする必要があることを意味する)。 プリミティブ値は、このコンポーネントの型との代入互換性を持たなければいけません。つまり、情報を失わずにこのコンポーネントの型に変換できる必要があります。 代入互換性の詳細は、JLSのセクション5.2を参照してください。

      パラメータ:
      value - 新しい値
      index - 設定するコンポーネントのインデックス
      例外:
      IndexOutOfBoundsException - indexがこの配列の範囲外である場合、つまり次のどちらかがtrueである場合:
          index < 0
          index >= length() 
      InvalidTypeException - valueの型と宣言された配列コンポーネントの型に互換性がない場合。
      ClassNotLoadedException - 配列コンポーネントの型が適切なクラス・ローダーによってロードされていない場合。
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(VirtualMachine.canBeModified()を参照)。
      関連項目:
      ArrayType.componentType()
    • 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()を参照)。
      関連項目:
      ArrayType.componentType()
    • setValues

      void setValues(int index, List<? extends Value> values, int srcIndex, int length) throws InvalidTypeException, ClassNotLoadedException
      配列コンポーネントのある範囲を別の値に置き換えます。

      オブジェクト値は、このコンポーネントの型への代入互換性を持たなければいけません(これは、この要素型は、囲むクラスのクラス・ローダーによってロードする必要があることを意味する)。 プリミティブ値は、このコンポーネントの型との代入互換性を持たなければいけません。つまり、情報を失わずにこのコンポーネントの型に変換できる必要があります。 代入互換性の詳細は、JLSのセクション5.2を参照してください。

      パラメータ:
      index - 設定する最初のコンポーネントのインデックス。
      values - この配列内に配置されるValueオブジェクトのリスト。
      srcIndex - 使用する最初のソース値のインデックス。
      length - 設定するコンポーネントの数。この配列またはvaluesの最後までのコンポーネントを設定する場合は -1。
      例外:
      InvalidTypeException - valuesのどれかが、宣言された配列コンポーネントの型との互換性を持たない場合。
      IndexOutOfBoundsException - indexlengthで指定された配列範囲が配列のサイズに収まっていない場合、あるいはsrcIndexlengthで指定されるソース範囲がvaluesのサイズに収まっていない場合、つまり次のいずれかがtrueである場合
          index < 0
          index > length()
          srcIndex < 0
          srcIndex > values.size() 
      または、length != -1で、次のいずれかがtrueである場合
          length < 0
          index + length > length()
          srcIndex + length > values.size() 
      VMCannotBeModifiedException - VirtualMachineが読取り専用の場合(VirtualMachine.canBeModified()を参照)。
      ClassNotLoadedException
      関連項目:
      ArrayType.componentType()