Spec-Zone.ru › OpenJDK 25

Интерфейс CharacterRange

Все суперинтерфейсы:
ClassFileElement, CodeElement, PseudoInstruction
public sealed interface CharacterRange extends PseudoInstruction
Псевдоинструкция, моделирующая одну запись атрибута CharacterRangeTable. При обходе элементов CodeModel передаётся как CodeElement в соответствии с настройкой параметра ClassFile.DebugElementsOption.

Запись диапазона символов является составной:

CharacterRange(
    Label startScope,
    Label endScope,
    int characterRangeStart,
    int characterRangeEnd,
    int flags
)

Другая модель, CharacterRangeInfo, также моделирует запись диапазона символов; она не зависит от CodeModel, представляет значения bci как int, а не как Label, и используется в качестве компонентов CharacterRangeTableAttribute.

Начиная с версии:
24
См. также:
  • CharacterRangeInfo
  • CodeBuilder::characterRange
  • ClassFile.DebugElementsOption

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

Модификатор и тип Поле Описание
static final int FLAG_ASSIGNMENT
Битовая маска вида ASSIGNMENT для CharacterRangeInfo.
static final int FLAG_BLOCK
Битовая маска вида BLOCK для CharacterRangeInfo.
static final int FLAG_BRANCH_FALSE
Битовая маска вида BRANCH_FALSE для CharacterRangeInfo.
static final int FLAG_BRANCH_TRUE
Битовая маска вида BRANCH_TRUE для CharacterRangeInfo.
static final int FLAG_CREATE
Битовая маска вида CREATE для CharacterRangeInfo.
static final int FLAG_FLOW_CONTROLLER
Битовая маска вида FLOW_CONTROLLER для CharacterRangeInfo.
static final int FLAG_FLOW_TARGET
Битовая маска вида FLOW_TARGET для CharacterRangeInfo.
static final int FLAG_INVOKE
Битовая маска вида INVOKE для CharacterRangeInfo.
static final int FLAG_STATEMENT
Битовая маска вида STATEMENT для CharacterRangeInfo.

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

Модификатор и тип Метод Описание
int characterRangeEnd()
Возвращает закодированный конец области диапазона символов (не включая его).
int characterRangeStart()
Возвращает закодированное начало области диапазона символов (включая его).
Label endScope()
Возвращает конец диапазона инструкций.
int flags()
Слово флагов, указывающее тип диапазона.
static CharacterRange of(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags)
Возвращает псевдоинструкцию диапазона символов.
Label startScope()
Возвращает начало диапазона инструкций.

Подробное описание полей

FLAG_STATEMENT

static final int FLAG_STATEMENT
Битовая маска вида STATEMENT для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_BLOCK

static final int FLAG_BLOCK
Битовая маска вида BLOCK для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_ASSIGNMENT

static final int FLAG_ASSIGNMENT
Битовая маска вида ASSIGNMENT для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_FLOW_CONTROLLER

static final int FLAG_FLOW_CONTROLLER
Битовая маска вида FLOW_CONTROLLER для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_FLOW_TARGET

static final int FLAG_FLOW_TARGET
Битовая маска вида FLOW_TARGET для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_INVOKE

static final int FLAG_INVOKE
Битовая маска вида INVOKE для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_CREATE

static final int FLAG_CREATE
Битовая маска вида CREATE для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_BRANCH_TRUE

static final int FLAG_BRANCH_TRUE
Битовая маска вида BRANCH_TRUE для CharacterRangeInfo.
См. также:
  • Значения константных полей

FLAG_BRANCH_FALSE

static final int FLAG_BRANCH_FALSE
Битовая маска вида BRANCH_FALSE для CharacterRangeInfo.
См. также:
  • Значения константных полей

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

startScope

Label startScope()
Возвращает начало диапазона инструкций.
Возвращает:
начало диапазона инструкций

endScope

Label endScope()
Возвращает конец диапазона инструкций.
Возвращает:
конец диапазона инструкций

characterRangeStart

int characterRangeStart()
Возвращает закодированное начало области диапазона символов (включая его). Значение формируется из пары line_number/column_number, заданной в line_number << 10 + column_number, где исходный файл рассматривается как массив символов (возможно, многобайтовых).
Возвращает:
закодированное начало области диапазона символов (включая его)

characterRangeEnd

int characterRangeEnd()
Возвращает закодированный конец области диапазона символов (не включая его). Значение формируется из пары line_number/column_number, заданной в line_number << 10 + column_number, где исходный файл рассматривается как массив символов (возможно, многобайтовых).
Возвращает:
закодированный конец области диапазона символов (не включая его)

flags

int flags()
Слово флагов, указывающее тип диапазона. Можно установить несколько битов флагов. Допустимые флаги:
  • FLAG_STATEMENT
  • FLAG_BLOCK
  • FLAG_ASSIGNMENT
  • FLAG_FLOW_CONTROLLER
  • FLAG_FLOW_TARGET
  • FLAG_INVOKE
  • FLAG_CREATE
  • FLAG_BRANCH_TRUE
  • FLAG_BRANCH_FALSE
Возвращает:
флаги
См. также:
  • CharacterRangeInfo.flags()

of

static CharacterRange of(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags)
Возвращает псевдоинструкцию диапазона символов.
Параметры:
startScope — начало диапазона инструкций
endScope — конец диапазона инструкций
characterRangeStart — закодированное начало области диапазона символов (включая его)
characterRangeEnd — закодированный конец области диапазона символов (не включая его)
flags — слово флагов, указывающее тип диапазона
Возвращает:
псевдоинструкцию диапазона символов

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/instruction/CharacterRange.html

Spec-Zone.ru

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