public interface ArrayReference extends ObjectReference
Value
object.
The array components, in aggregate, are placed in List
objects instead of arrays for consistency with the rest of the API and
for interoperability with other APIs.INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED
Modifier and Type | Method and Description |
---|---|
Value |
getValue(int index)
Returns an array component value.
|
List<Value> |
getValues()
Returns all of the components in this array.
|
List<Value> |
getValues(int index,
int length)
Returns a range of array components.
|
int |
length()
Returns the number of components in this array.
|
void |
setValue(int index,
Value value)
Replaces an array component with another value.
|
void |
setValues(int index,
List<? extends Value> values,
int srcIndex,
int length)
Replaces a range of array components with other values.
|
void |
setValues(List<? extends Value> values)
Replaces all array components with other values.
|
disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads
toString, virtualMachine
int length()
Value getValue(int index)
index
- the index of the component to retrieveValue
at the given index.IndexOutOfBoundsException
- if
index
is outside the range of this array,
that is, if either of the following are true:
index < 0
index >= length()
List<Value> getValues()
Value
objects, one for each array
component ordered by array index. For zero length arrays,
an empty list is returned.List<Value> getValues(int index, int length)
index
- the index of the first component to retrievelength
- the number of components to retrieve, or -1 to
retrieve all components to the end of this array.Value
objects, one for each requested
array component ordered by array index. When there are
no elements in the specified range (e.g.
length
is zero) an empty list is returnedIndexOutOfBoundsException
- if the range
specified with index
and
length
is not within the range of the array,
that is, if either of the following are true:
index < 0
index > length()
or if length != -1
and
either of the following are true:
length < 0
index + length > length()
void setValue(int index, Value value) throws InvalidTypeException, ClassNotLoadedException
Object values must be assignment compatible with the component type (This implies that the component type must be loaded through the declaring class's class loader). Primitive values must be either assignment compatible with the component type or must be convertible to the component type without loss of information. See JLS section 5.2 for more information on assignment compatibility.
value
- the new valueindex
- the index of the component to setIndexOutOfBoundsException
- if
index
is outside the range of this array,
that is, if either of the following are true:
index < 0
index >= length()
InvalidTypeException
- if the type of value
is not compatible with the declared type of array components.ClassNotLoadedException
- if the array component type
has not yet been loaded
through the appropriate class loader.VMCannotBeModifiedException
- if the VirtualMachine is read-only - see VirtualMachine.canBeModified()
.ArrayType.componentType()
void setValues(List<? extends Value> values) throws InvalidTypeException, ClassNotLoadedException
Object values must be assignment compatible with the element type (This implies that the component type must be loaded through the enclosing class's class loader). Primitive values must be either assignment compatible with the component type or must be convertible to the component type without loss of information. See JLS section 5.2 for more information on assignment compatibility.
values
- a list of Value
objects to be placed
in this array. If values.size()
is
less that the length of the array, the first
values.size()
elements are set.InvalidTypeException
- if any of the
new values
is not compatible with the declared type of array components.ClassNotLoadedException
- if the array component
type has not yet been loaded
through the appropriate class loader.VMCannotBeModifiedException
- if the VirtualMachine is read-only - see VirtualMachine.canBeModified()
.ArrayType.componentType()
void setValues(int index, List<? extends Value> values, int srcIndex, int length) throws InvalidTypeException, ClassNotLoadedException
Object values must be assignment compatible with the component type (This implies that the component type must be loaded through the enclosing class's class loader). Primitive values must be either assignment compatible with the component type or must be convertible to the component type without loss of information. See JLS section 5.2 for more information on assignment compatibility.
index
- the index of the first component to set.values
- a list of Value
objects to be placed
in this array.srcIndex
- the index of the first source value to use.length
- the number of components to set, or -1 to set
all components to the end of this array or the end of
values
(whichever comes first).InvalidTypeException
- if any element of
values
is not compatible with the declared type of array components.IndexOutOfBoundsException
- if the
array range specified with
index
and length
is not within the range of the array,
or if the source range specified with
srcIndex
and length
is not within values
,
that is, if any of the following are true:
index < 0
index > length()
srcIndex < 0
srcIndex > values.size()
or if length != -1
and any of the
following are true:
length < 0
index + length > length()
srcIndex + length > values.size()
VMCannotBeModifiedException
- if the VirtualMachine is read-only - see VirtualMachine.canBeModified()
.ClassNotLoadedException
ArrayType.componentType()
Copyright © 1999, 2020, Oracle and/or its affiliates. All rights reserved.