Spec-Zone.ru › OpenJDK 27

Интерфейс ArrayReference

Все суперинтерфейсы:
Mirror, ObjectReference, Value
public interface ArrayReference extends ObjectReference
Предоставляет доступ к объекту массива и его компонентам в целевой виртуальной машине. Каждый компонент массива представлен объектом Value. Все компоненты массива в совокупности помещаются в объекты List, а не в массивы, чтобы обеспечить единообразие с остальной частью API и совместимость с другими API.
Начиная с:
1.3

Краткое описание полей

Поля, объявленные в интерфейсе ObjectReference

INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED
Модификатор и тип Поле Описание
static final int INVOKE_NONVIRTUAL
Выполняет вызов невиртуального метода
static final int INVOKE_SINGLE_THREADED
Выполняет вызов метода, возобновляя только вызывающий поток

Краткое описание методов

Модификатор и тип Метод Описание
Value getValue(int index)
Возвращает значение компонента массива.
List<Value> getValues()
Возвращает все компоненты этого массива.
List<Value> getValues(int index, int length)
Возвращает диапазон компонентов массива.
int length()
Возвращает количество компонентов в этом массиве.
void setValue(int index, Value value)
Заменяет компонент массива другим значением.
void setValues(int index, List<? extends Value> values, int srcIndex, int length)
Заменяет диапазон компонентов массива другими значениями.
void setValues(List<? extends Value> values)
Заменяет все компоненты массива другими значениями.

Методы, объявленные в интерфейсе Mirror

toString, virtualMachine
Модификатор и тип Метод Описание
String toString()
Возвращает строку с описанием этого зеркала
VirtualMachine virtualMachine()
Возвращает VirtualMachine, которой принадлежит это зеркало.

Методы, объявленные в интерфейсе ObjectReference

disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads
Модификатор и тип Метод Описание
void disableCollection()
Предотвращает сборку мусора для этого объекта.
void enableCollection()
Разрешает сборку мусора для этого объекта.
int entryCount()
Возвращает количество раз, которое текущий владеющий поток входил в монитор этого объекта, если владеющий поток является потоком платформы; возвращает 0, если монитором не владеет поток платформы.
boolean equals(Object obj)
Сравнивает указанный объект с этим ObjectReference на равенство.
Value getValue(Field sig)
Получает значение заданного поля экземпляра или статического поля этого объекта.
Map<Field,Value> getValues(List<? extends Field> fields)
Получает значения нескольких полей экземпляра и/или статических полей этого объекта.
int hashCode()
Возвращает значение хеш-кода для этого ObjectReference.
Value invokeMethod(ThreadReference thread, Method method, List<? extends Value> arguments, int options)
Вызывает указанный Method для этого объекта в целевой виртуальной машине.
boolean isCollected()
Определяет, был ли этот объект собран сборщиком мусора в целевой виртуальной машине.
ThreadReference owningThread()
Возвращает ThreadReference потока платформы, если таковой имеется, который в данный момент владеет монитором этого объекта.
ReferenceType referenceType()
Получает ReferenceType, представляющий тип этого объекта.
List<ObjectReference> referringObjects(long maxReferrers)
Возвращает объекты, непосредственно ссылающиеся на этот объект.
void setValue(Field field, Value value)
Устанавливает значение заданного поля экземпляра или статического поля этого объекта.
long uniqueID()
Возвращает уникальный идентификатор этого ObjectReference.
List<ThreadReference> waitingThreads()
Возвращает список, содержащий ThreadReference для каждого потока платформы, который в данный момент ожидает монитор этого объекта.

Методы, объявленные в интерфейсе Value

type
Модификатор и тип Метод Описание
Type type()
Возвращает тип этого значения во время выполнения.

Подробное описание методов

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 — если диапазон, заданный с помощью index и length, выходит за пределы диапазона массива, то есть если выполняется любое из следующих условий:
   index < 0
   index > length() 
или если length != -1 и выполняется любое из следующих условий:
   length < 0
   index + length >  length()

setValue

void setValue(int index, Value value) throws InvalidTypeException, ClassNotLoadedException
Заменяет компонент массива другим значением.

Объектные значения должны быть совместимы с типом компонента при присваивании (это подразумевает, что тип компонента должен быть загружен загрузчиком классов объявляющего класса). Примитивные значения должны быть совместимы с типом компонента при присваивании либо преобразуемы к типу компонента без потери информации. Дополнительные сведения о совместимости при присваивании см. в разделе 5.2 JLS.

Параметры:
index — индекс устанавливаемого компонента
value — новое значение
Вызывает исключение:
IndexOutOfBoundsException — если index выходит за пределы диапазона этого массива, то есть если выполняется любое из следующих условий:
   index < 0
   index >= length() 
InvalidTypeException — если тип value несовместим с объявленным типом компонентов массива.
ClassNotLoadedException — если тип компонента массива еще не загружен соответствующим загрузчиком классов.
VMCannotBeModifiedException — если VirtualMachine доступна только для чтения — см. VirtualMachine.canBeModified().
См. также:
  • ArrayType.componentType()

setValues

void setValues(List<? extends Value> values) throws InvalidTypeException, ClassNotLoadedException
Заменяет все компоненты массива другими значениями. Если размер переданного списка превышает размер массива, значения в конце списка игнорируются.

Объектные значения должны быть совместимы с типом элемента при присваивании (это подразумевает, что тип компонента должен быть загружен загрузчиком классов объемлющего класса). Примитивные значения должны быть совместимы с типом компонента при присваивании либо преобразуемы к типу компонента без потери информации. Дополнительные сведения о совместимости при присваивании см. в разделе 5.2 JLS.

Параметры:
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
Заменяет диапазон компонентов массива другими значениями.

Объектные значения должны быть совместимы с типом компонента при присваивании (это подразумевает, что тип компонента должен быть загружен загрузчиком классов объемлющего класса). Примитивные значения должны быть совместимы с типом компонента при присваивании либо преобразуемы к типу компонента без потери информации. Дополнительные сведения о совместимости при присваивании см. в разделе 5.2 JLS.

Параметры:
index — индекс первого устанавливаемого компонента.
values — список объектов Value, которые нужно поместить в этот массив.
srcIndex — индекс первого используемого исходного значения.
length — количество устанавливаемых компонентов или -1, чтобы установить все компоненты до конца этого массива либо до конца values (в зависимости от того, что наступит раньше).
Вызывает исключение:
InvalidTypeException — если любой элемент values несовместим с объявленным типом компонентов массива.
IndexOutOfBoundsException — если диапазон массива, заданный с помощью index и length, выходит за пределы диапазона массива либо исходный диапазон, заданный с помощью srcIndex и length, выходит за пределы values, то есть если выполняется любое из следующих условий:
   index < 0
   index > length()
   srcIndex < 0
   srcIndex > values.size() 
или если length != -1 и выполняется любое из следующих условий:
   length < 0
   index + length > length()
   srcIndex + length > values.size() 
VMCannotBeModifiedException — если VirtualMachine доступна только для чтения — см. VirtualMachine.canBeModified().
ClassNotLoadedException
См. также:
  • ArrayType.componentType()

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API