Interface ArrayReference
- All Superinterfaces:
Mirror, ObjectReference, Value
-
Field Summary
Fields declared in interface ObjectReference
INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED
Modifier and TypeFieldDescriptionstatic final int
Perform non-virtual method invocationstatic final int
Perform method invocation with only the invoking thread resumed -
Method Summary
Modifier and TypeMethodDescriptiongetValue
(int index) Returns an array component value.Returns all of the components in this array.getValues
(int index, int length) Returns a range of array components.int
length()
Returns the number of components in this array.void
Replaces an array component with another value.void
Replaces a range of array components with other values.void
Replaces all array components with other values.Methods declared in interface Mirror
toString, virtualMachine
Modifier and TypeMethodDescriptiontoString()
Returns a String describing this mirrorGets the VirtualMachine to which this Mirror belongs.Methods declared in interface ObjectReference
disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads
Modifier and TypeMethodDescriptionvoid
Prevents garbage collection for this object.void
Permits garbage collection for this object.int
Returns the number of times this object's monitor has been entered by the current owning thread if the owning thread is platform thread; Returns 0 if not owned by a platform thread.boolean
Compares the specified Object with this ObjectReference for equality.Gets the value of a given instance or static field in this object.Gets the value of multiple instance and/or static fields in this object.int
hashCode()
Returns the hash code value for this ObjectReference.invokeMethod
(ThreadReference thread, Method method, List<? extends Value> arguments, int options) Invokes the specifiedMethod
on this object in the target VM.boolean
Determines if this object has been garbage collected in the target VM.Returns aThreadReference
for the platform thread, if any, which currently owns this object's monitor.Gets theReferenceType
that mirrors the type of this object.referringObjects
(long maxReferrers) Returns objects that directly reference this object.void
Sets the value of a given instance or static field in this object.long
uniqueID()
Returns a unique identifier for this ObjectReference.Returns a List containing aThreadReference
for each platform thread currently waiting for this object's monitor.
-
Method Details
-
length
int length()Returns the number of components in this array.- Returns:
- the integer count of components in this array.
-
getValue
Returns an array component value.- Parameters:
index
- the index of the component to retrieve- Returns:
- the
Value
at the given index. - Throws:
IndexOutOfBoundsException
- ifindex
is outside the range of this array, that is, if either of the following are true:index < 0 index >=
length()
-
getValues
-
getValues
Returns a range of array components.- Parameters:
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.- Returns:
- a list of
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 returned - Throws:
IndexOutOfBoundsException
- if the range specified withindex
andlength
is not within the range of the array, that is, if either of the following are true:index < 0 index >
or iflength()
length != -1
and either of the following are true:length < 0 index + length >
length()
-
setValue
Replaces an array component with another value.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.
- Parameters:
index
- the index of the component to setvalue
- the new value- Throws:
IndexOutOfBoundsException
- ifindex
is outside the range of this array, that is, if either of the following are true:index < 0 index >=
length()
InvalidTypeException
- if the type ofvalue
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 - seeVirtualMachine.canBeModified()
.- See Also:
-
setValues
Replaces all array components with other values. If the given list is larger in size than the array, the values at the end of the list are ignored.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.
- Parameters:
values
- a list ofValue
objects to be placed in this array. Ifvalues.size()
is less that the length of the array, the firstvalues.size()
elements are set.- Throws:
InvalidTypeException
- if any of the newvalues
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 - seeVirtualMachine.canBeModified()
.- See Also:
-
setValues
void setValues(int index, List<? extends Value> values, int srcIndex, int length) throws InvalidTypeException, ClassNotLoadedException Replaces a range of array components with other values.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.
- Parameters:
index
- the index of the first component to set.values
- a list ofValue
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 ofvalues
(whichever comes first).- Throws:
InvalidTypeException
- if any element ofvalues
is not compatible with the declared type of array components.IndexOutOfBoundsException
- if the array range specified withindex
andlength
is not within the range of the array, or if the source range specified withsrcIndex
andlength
is not withinvalues
, that is, if any of the following are true:index < 0 index >
or iflength()
srcIndex < 0 srcIndex > values.size()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 - seeVirtualMachine.canBeModified()
.ClassNotLoadedException
- See Also:
-