Интерфейс CodeBuilder
- Все суперинтерфейсы:
-
ClassFileBuilder<CodeElement, CodeBuilder>,Consumer<CodeElement>
- Все известные подинтерфейсы:
CodeBuilder.BlockCodeBuilder
public sealed interface CodeBuilder extends ClassFileBuilder<CodeElement, CodeBuilder> permits CodeBuilder.BlockCodeBuilder (not exhaustive)
Code (тела методов). MethodBuilder.withCode(java.util.function.Consumer<? super java.lang.classfile.CodeBuilder>) — базовый способ получения создателя кода; ClassBuilder.withMethodBody(java.lang.classfile.constantpool.Utf8Entry, java.lang.classfile.constantpool.Utf8Entry, int, java.util.function.Consumer<? super java.lang.classfile.CodeBuilder>) — сокращённый способ. Также существуют производные создатели кода от block(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>), который обрабатывает блоки кода, и transforming(java.lang.classfile.CodeTransform, java.util.function.Consumer<java.lang.classfile.CodeBuilder>), который выполняет преобразования над существующими обработчиками, для обоих которых предварительно требуется доступный создатель кода. Обратитесь к ClassFileBuilder за общими рекомендациями и предосторожностями при использовании создателей для структур в формате файла class. В отличие от других создателей, порядок элементов-членов в создателе кода имеет значение: он влияет на результирующий байт-код. Многие опции API Class-File влияют на создатели кода: ClassFile.DeadCodeOption и ClassFile.ShortJumpsOption влияют на результирующий байт-код, а ClassFile.DeadLabelsOption, ClassFile.DebugElementsOption, ClassFile.LineNumbersOption, ClassFile.StackMapsOption и ClassFile.AttributesProcessingOption влияют на результирующие атрибуты построенного Code атрибута, причём некоторые элементы, отправленные создателю кода, в противном случае игнорируются.
Производители инструкций
CodeBuilder предоставляет удобные методы для создания инструкций (см. JVMS 6.5 Инструкции) по их мнемонике, принимая необходимые операнды. - Инструкции, которые кодируют свои операнды в своём коде операции, такие как
aload_<n>, разделяют свои фабрики с их обобщённой версией, например,aload. Обратите внимание, что некоторые инструкции с константами, такие какiconst_1, не имеют обобщённых версий и, следовательно, имеют свои собственные фабрики. - Инструкции, принимающие широкие операнды, такие как
ldc2_wилиwide, разделяют свои фабрики со своей обычной версией, например,ldc(java.lang.constant.ConstantDesc). Обратите внимание, чтоgoto_wимеет свою собственную фабрику, чтобы избежать коротких переходов. - Фабрики инструкций
goto,instanceof,newиreturnназываютсяgoto_,instanceOf,new_иreturn_соответственно из-за конфликтов с ключевыми словами в языке программирования Java. - Фабрики не предоставляются для инструкций
jsr,jsr_w,retиwide ret, которые не могут появляться в файлах классов с основной версией 51 или выше. (JVMS 4.9.1) Их всё ещё можно предоставить черезClassFileBuilder.with(E).
- С:
- 24
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
CodeBuilder.BlockCodeBuilder |
Создатель блоков кода. |
static interface |
CodeBuilder.CatchBuilder |
Создатель для добавления блоков catch. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default CodeBuilder |
aaload() |
Генерирует инструкцию загрузки из массива reference. |
default CodeBuilder |
aastore() |
Генерирует инструкцию сохранения в массив reference. |
default CodeBuilder |
aconst_null() |
Генерирует инструкцию, помещающую нулевой объект reference на стек операндов. |
int |
allocateLocal |
Возвращает слот локальной переменной для новой локальной переменной. |
default CodeBuilder |
aload |
Генерирует инструкцию загрузки reference из локальной переменной. |
default CodeBuilder |
anewarray |
Генерирует инструкцию создания нового массива reference. |
default CodeBuilder |
anewarray |
Генерирует инструкцию создания нового массива reference. |
default CodeBuilder |
areturn() |
Генерирует инструкцию возвращения reference из этого метода. |
default CodeBuilder |
arraylength() |
Генерирует инструкцию получения длины массива. |
default CodeBuilder |
arrayLoad |
Генерирует инструкцию загрузки из массива. |
default CodeBuilder |
arrayStore |
Генерирует инструкцию сохранения в массив. |
default CodeBuilder |
astore |
Генерирует инструкцию сохранения reference в локальную переменную. |
default CodeBuilder |
athrow() |
Генерирует инструкцию выброса исключения или ошибки. |
default CodeBuilder |
baload() |
|
default CodeBuilder |
bastore() |
|
default CodeBuilder |
bipush |
|
default CodeBuilder |
block |
Добавляет лексический блок к строящемуся методу. |
default CodeBuilder |
branch |
Генерирует инструкцию перехода. |
default CodeBuilder |
caload() |
Генерирует инструкцию загрузки из массива char. |
default CodeBuilder |
castore() |
Генерирует инструкцию сохранения в массив char. |
default CodeBuilder |
characterRange |
Объявляет запись диапазона символов. |
default CodeBuilder |
checkcast |
Генерирует инструкцию проверки типа объекта, выбросив исключение ClassCastException в случае неудачи. |
default CodeBuilder |
checkcast |
Генерирует инструкцию проверки типа объекта, выбросив исключение ClassCastException в случае неудачи. |
default CodeBuilder |
conversion |
Генерирует инструкцию(и) преобразования fromType в toType. |
default CodeBuilder |
d2f() |
|
default CodeBuilder |
d2i() |
|
default CodeBuilder |
d2l() |
|
default CodeBuilder |
dadd() |
Генерирует инструкцию сложения двух doubles. |
default CodeBuilder |
daload() |
Генерирует инструкцию загрузки из массива double. |
default CodeBuilder |
dastore() |
Генерирует инструкцию сохранения в массив double. |
default CodeBuilder |
dcmpg() |
|
default CodeBuilder |
dcmpl() |
|
default CodeBuilder |
dconst_0() |
Генерирует инструкцию помещения константы double 0 на стек операндов. |
default CodeBuilder |
dconst_1() |
Генерирует инструкцию помещения константы double 1 на стек операндов. |
default CodeBuilder |
ddiv() |
Генерирует инструкцию деления doubles. |
default CodeBuilder |
dload |
Генерирует инструкцию загрузки double из локальной переменной. |
default CodeBuilder |
dmul() |
Генерирует инструкцию умножения doubles. |
default CodeBuilder |
dneg() |
Генерирует инструкцию изменения знака double. |
default CodeBuilder |
drem() |
Генерирует инструкцию вычисления остатка от деления double. |
default CodeBuilder |
dreturn() |
Генерирует инструкцию возвращения double из этого метода. |
default CodeBuilder |
dstore |
Генерирует инструкцию сохранения double в локальную переменную. |
default CodeBuilder |
dsub() |
Генерирует инструкцию вычитания doubles. |
default CodeBuilder |
dup() |
Генерирует инструкцию дублирования значения вершины стека операндов. |
default CodeBuilder |
dup_x1() |
Генерирует инструкцию дублирования значения вершины стека операндов и вставки двух значений вниз. |
default CodeBuilder |
dup_x2() |
Генерирует инструкцию дублирования значения вершины стека операндов и вставки двух или трёх значений вниз. |
default CodeBuilder |
dup2() |
Генерирует инструкцию дублирования значения вершины стека операндов или двух значений. |
default CodeBuilder |
dup2_x1() |
Генерирует инструкцию дублирования значений вершины стека операндов или двух значений и вставку двух или трёх значений вниз. |
default CodeBuilder |
dup2_x2() |
Генерирует инструкцию дублирования значений вершины стека операндов или двух значений и вставку двух, трёх или четырёх значений вниз. |
Label |
endLabel() |
Возвращает метку, связанную с концом текущего блока. |
default CodeBuilder |
exceptionCatch |
Объявляет запись таблицы исключений. |
default CodeBuilder |
exceptionCatch |
Объявляет запись таблицы исключений. |
default CodeBuilder |
exceptionCatch |
Объявляет запись таблицы исключений. |
default CodeBuilder |
exceptionCatchAll |
Объявляет запись таблицы исключений, перехватывающую все исключения и ошибки. |
default CodeBuilder |
f2d() |
|
default CodeBuilder |
f2i() |
|
default CodeBuilder |
f2l() |
|
default CodeBuilder |
fadd() |
Генерирует инструкцию для сложения двух floats. |
default CodeBuilder |
faload() |
Генерирует инструкцию для загрузки из массива float. |
default CodeBuilder |
fastore() |
Генерирует инструкцию для сохранения в массив float. |
default CodeBuilder |
fcmpg() |
|
default CodeBuilder |
fcmpl() |
|
default CodeBuilder |
fconst_0() |
Генерирует инструкцию, помещающую константу float 0 на стек операндов. |
default CodeBuilder |
fconst_1() |
Генерирует инструкцию, помещающую константу float 1 на стек операндов. |
default CodeBuilder |
fconst_2() |
Генерирует инструкцию, помещающую константу float 2 на стек операндов. |
default CodeBuilder |
fdiv() |
Генерирует инструкцию для деления floats. |
default CodeBuilder |
fieldAccess |
Генерирует инструкцию для доступа к полю. |
default CodeBuilder |
fieldAccess |
Генерирует инструкцию для доступа к полю. |
default CodeBuilder |
fload |
Генерирует инструкцию для загрузки float из локальной переменной. |
default CodeBuilder |
fmul() |
Генерирует инструкцию для умножения floats. |
default CodeBuilder |
fneg() |
Генерирует инструкцию для взятия противоположного значения float. |
default CodeBuilder |
frem() |
Генерирует инструкцию для вычисления остатка от деления floats. |
default CodeBuilder |
freturn() |
Генерирует инструкцию для возврата float из этого метода. |
default CodeBuilder |
fstore |
Генерирует инструкцию для сохранения float в локальную переменную. |
default CodeBuilder |
fsub() |
Генерирует инструкцию для вычитания floats. |
default CodeBuilder |
getfield |
Генерирует инструкцию для получения поля из объекта. |
default CodeBuilder |
getfield |
Генерирует инструкцию для получения поля из объекта. |
default CodeBuilder |
getstatic |
Генерирует инструкцию для получения статического поля из класса или интерфейса. |
default CodeBuilder |
getstatic |
Генерирует инструкцию для получения статического поля из класса или интерфейса. |
default CodeBuilder |
goto_ |
Генерирует инструкцию для безусловного перехода. |
default CodeBuilder |
goto_w |
Генерирует инструкцию для безусловного перехода с широким индексом. |
default CodeBuilder |
i2b() |
|
default CodeBuilder |
i2c() |
|
default CodeBuilder |
i2d() |
|
default CodeBuilder |
i2f() |
|
default CodeBuilder |
i2l() |
|
default CodeBuilder |
i2s() |
|
default CodeBuilder |
iadd() |
Генерирует инструкцию для сложения двух ints. |
default CodeBuilder |
iaload() |
Генерирует инструкцию для загрузки из массива int. |
default CodeBuilder |
iand() |
|
default CodeBuilder |
iastore() |
Генерирует инструкцию для сохранения в массив int. |
default CodeBuilder |
iconst_0() |
Генерирует инструкцию, помещающую константу int 0 на стек операндов. |
default CodeBuilder |
iconst_1() |
Генерирует инструкцию, помещающую константу int 1 на стек операндов. |
default CodeBuilder |
iconst_2() |
Генерирует инструкцию, помещающую константу int 2 на стек операндов. |
default CodeBuilder |
iconst_3() |
Генерирует инструкцию, помещающую константу int 3 на стек операндов. |
default CodeBuilder |
iconst_4() |
Генерирует инструкцию, помещающую константу int 4 на стек операндов. |
default CodeBuilder |
iconst_5() |
Генерирует инструкцию, помещающую константу int 5 на стек операндов. |
default CodeBuilder |
iconst_m1() |
Генерирует инструкцию, помещающую константу int -1 на стек операндов. |
default CodeBuilder |
idiv() |
Генерирует инструкцию для деления ints. |
default CodeBuilder |
if_acmpeq |
Генерирует инструкцию для перехода, если сравнение reference operand1 == operand2 успешно. |
default CodeBuilder |
if_acmpne |
Генерирует инструкцию для перехода, если сравнение reference operand1 != operand2 успешно. |
default CodeBuilder |
if_icmpeq |
Генерирует инструкцию перехода, если сравнение int operand1 == operand2 успешно. |
default CodeBuilder |
if_icmpge |
Генерирует инструкцию перехода, если сравнение int operand1 >= operand2 успешно. |
default CodeBuilder |
if_icmpgt |
Генерирует инструкцию перехода, если сравнение int operand1 > operand2 успешно. |
default CodeBuilder |
if_icmple |
Генерирует инструкцию перехода, если сравнение int operand1 <= operand2 успешно. |
default CodeBuilder |
if_icmplt |
Генерирует инструкцию перехода, если сравнение int operand1 < operand2 успешно. |
default CodeBuilder |
if_icmpne |
Генерирует инструкцию перехода, если сравнение int operand1 != operand2 успешно. |
default CodeBuilder |
ifeq |
Генерирует инструкцию перехода, если сравнение int с нулём == 0 успешно. |
default CodeBuilder |
ifge |
Генерирует инструкцию перехода, если сравнение int с нулём >= 0 успешно. |
default CodeBuilder |
ifgt |
Генерирует инструкцию перехода, если сравнение int с нулём > 0 успешно. |
default CodeBuilder |
ifle |
Генерирует инструкцию перехода, если сравнение int с нулём <= 0 успешно. |
default CodeBuilder |
iflt |
Генерирует инструкцию перехода, если сравнение int с нулём < 0 успешно. |
default CodeBuilder |
ifne |
Генерирует инструкцию перехода, если сравнение int с нулём != 0 успешно. |
default CodeBuilder |
ifnonnull |
Генерирует инструкцию перехода, если reference не является null. |
default CodeBuilder |
ifnull |
Генерирует инструкцию перехода, если reference является null. |
default CodeBuilder |
ifThen |
Добавляет блок "if-then", который зависит от значения(ий) в верхней части стека операндов в соответствии с заданным кодом операции. |
default CodeBuilder |
ifThen |
Добавляет блок "if-then", который зависит от значения boolean в верхней части стека операндов. |
default CodeBuilder |
ifThenElse |
Добавляет блок "if-then-else", который зависит от значения(ий) в верхней части стека операндов в соответствии с заданным кодом операции. |
default CodeBuilder |
ifThenElse |
Добавляет блок "if-then-else", который зависит от значения boolean в верхней части стека операндов. |
default CodeBuilder |
iinc |
Генерирует инструкцию для инкремента локальной переменной int на константу. |
default CodeBuilder |
iload |
Генерирует инструкцию для загрузки int из локальной переменной. |
default CodeBuilder |
imul() |
Генерирует инструкцию для умножения ints. |
default CodeBuilder |
ineg() |
Генерирует инструкцию для взятия отрицательного значения int. |
default CodeBuilder |
instanceOf |
Генерирует инструкцию для определения, является ли объект заданного типа, возвращая результат boolean в стек операндов. |
default CodeBuilder |
instanceOf |
Генерирует инструкцию для определения, является ли объект заданного типа, возвращая результат boolean в стек операндов. |
default CodeBuilder |
invoke |
Генерирует инструкцию для вызова метода. |
default CodeBuilder |
invoke |
Генерирует инструкцию для вызова метода. |
default CodeBuilder |
invokedynamic |
Генерирует инструкцию для вызова динамически вычисляемой точки вызова. |
default CodeBuilder |
invokedynamic |
Генерирует инструкцию для вызова динамически вычисляемой точки вызова. |
default CodeBuilder |
invokeinterface |
Генерирует инструкцию для вызова метода интерфейса. |
default CodeBuilder |
invokeinterface |
Генерирует инструкцию для вызова метода интерфейса. |
default CodeBuilder |
invokespecial |
Генерирует инструкцию для вызова метода экземпляра в интерфейсе; прямой вызов методов текущего класса и его супертипов. |
default CodeBuilder |
invokespecial |
Генерирует инструкцию для вызова метода экземпляра в классе; прямой вызов методов инициализации экземпляра и методов текущего класса и его супертипов. |
default CodeBuilder |
invokespecial |
Генерирует инструкцию для вызова метода экземпляра в классе; прямой вызов методов инициализации экземпляра и методов текущего класса и его супертипов. |
default CodeBuilder |
invokespecial |
Генерирует инструкцию для вызова метода экземпляра; прямой вызов методов инициализации экземпляра и методов текущего класса и его супертипов. |
default CodeBuilder |
invokestatic |
Генерирует инструкцию для вызова статического метода класса интерфейса. |
default CodeBuilder |
invokestatic |
Генерирует инструкцию для вызова статического метода класса. |
default CodeBuilder |
invokestatic |
Генерирует инструкцию для вызова статического метода класса. |
default CodeBuilder |
invokestatic |
Генерирует инструкцию для вызова статического метода. |
default CodeBuilder |
invokevirtual |
Генерирует инструкцию для вызова метода экземпляра; диспетчеризация на основе класса. |
default CodeBuilder |
invokevirtual |
Генерирует инструкцию для вызова метода экземпляра; диспетчеризация на основе класса. |
default CodeBuilder |
ior() |
|
default CodeBuilder |
irem() |
Генерирует инструкцию для вычисления остатка от деления ints. |
default CodeBuilder |
ireturn() |
Генерирует инструкцию для возврата int из этого метода. |
default CodeBuilder |
ishl() |
Генерирует инструкцию для сдвига int влево. |
default CodeBuilder |
ishr() |
Генерирует инструкцию для сдвига int вправо. |
default CodeBuilder |
istore |
Генерирует инструкцию для сохранения int в локальную переменную. |
default CodeBuilder |
isub() |
Генерирует инструкцию для вычитания ints. |
default CodeBuilder |
iushr() |
Генерирует инструкцию для логического сдвига int вправо. |
default CodeBuilder |
ixor() |
Генерирует инструкцию для вычисления побитового XOR ints. |
default CodeBuilder |
l2d() |
|
default CodeBuilder |
l2f() |
|
default CodeBuilder |
l2i() |
|
default CodeBuilder |
labelBinding |
Связывает метку с текущей позицией. |
default CodeBuilder |
ladd() |
Генерирует инструкцию для сложения двух longs. |
default CodeBuilder |
laload() |
Генерирует инструкцию для загрузки из массива long. |
default CodeBuilder |
land() |
Генерирует инструкцию для вычисления побитового И (&) для longs. |
default CodeBuilder |
lastore() |
Генерирует инструкцию для записи в массив long. |
default CodeBuilder |
lcmp() |
Генерирует инструкцию для сравнения longs. |
default CodeBuilder |
lconst_0() |
Генерирует инструкцию для помещения константы 0 типа long на стек операндов. |
default CodeBuilder |
lconst_1() |
Генерирует инструкцию для помещения константы 1 типа long на стек операндов. |
default CodeBuilder |
ldc |
Генерирует инструкцию для помещения элемента из пула постоянных времени выполнения на стек операндов. |
default CodeBuilder |
ldc |
Генерирует инструкцию для помещения элемента из пула постоянных времени выполнения на стек операндов. |
default CodeBuilder |
ldiv() |
Генерирует инструкцию для деления longs. |
default CodeBuilder |
lineNumber |
Объявляет номер строки источника, начиная с текущей позиции. |
default CodeBuilder |
lload |
Генерирует инструкцию для загрузки long из локальной переменной. |
default CodeBuilder |
lmul() |
Генерирует инструкцию для умножения longs. |
default CodeBuilder |
lneg() |
Генерирует инструкцию для изменения знака long. |
default CodeBuilder |
loadConstant |
Генерирует инструкцию для помещения константы double на стек операндов. |
default CodeBuilder |
loadConstant |
Генерирует инструкцию для помещения константы float на стек операндов. |
default CodeBuilder |
loadConstant |
Генерирует инструкцию для помещения константы int на стек операндов. |
default CodeBuilder |
loadConstant |
Генерирует инструкцию для помещения константы long на стек операндов. |
default CodeBuilder |
loadConstant |
Генерирует инструкцию для помещения константы на стек операндов. |
default CodeBuilder |
loadLocal |
Генерирует инструкцию для загрузки значения из локальной переменной. |
default CodeBuilder |
localVariable |
Объявляет запись локальной переменной. |
default CodeBuilder |
localVariable |
Объявляет запись локальной переменной. |
default CodeBuilder |
localVariableType |
Объявляет запись типа локальной переменной. |
default CodeBuilder |
localVariableType |
Объявляет запись типа локальной переменной. |
default CodeBuilder |
lookupswitch |
Генерирует инструкцию для доступа к таблице переходов по соответствию ключа и переходу. |
default CodeBuilder |
lor() |
Генерирует инструкцию для вычисления побитового ИЛИ (|) для longs. |
default CodeBuilder |
lrem() |
Генерирует инструкцию для вычисления остатка от деления longs. |
default CodeBuilder |
lreturn() |
Генерирует инструкцию для возврата значения long из данного метода. |
default CodeBuilder |
lshl() |
Генерирует инструкцию для сдвига влево long. |
default CodeBuilder |
lshr() |
Генерирует инструкцию для сдвига вправо long. |
default CodeBuilder |
lstore |
Генерирует инструкцию для записи long в локальную переменную. |
default CodeBuilder |
lsub() |
Генерирует инструкцию для вычитания longs. |
default CodeBuilder |
lushr() |
Генерирует инструкцию для логического сдвига вправо long. |
default CodeBuilder |
lxor() |
Генерирует инструкцию для вычисления побитового XOR (^) для longs. |
default CodeBuilder |
monitorenter() |
Генерирует инструкцию для входа в монитор для объекта. |
default CodeBuilder |
monitorexit() |
Генерирует инструкцию для выхода из монитора для объекта. |
default CodeBuilder |
multianewarray |
Генерирует инструкцию для создания нового многомерного массива. |
default CodeBuilder |
multianewarray |
Генерирует инструкцию для создания нового многомерного массива. |
default CodeBuilder |
new_ |
Генерирует инструкцию для создания нового объекта. |
default CodeBuilder |
new_ |
Генерирует инструкцию для создания нового объекта. |
default CodeBuilder |
newarray |
Генерирует инструкцию для создания нового массива примитивного типа. |
default Label |
newBoundLabel() |
Создаёт новую метку, связанную с текущей позицией. |
Label |
newLabel() |
Возвращает новую несвязанную метку. |
default CodeBuilder |
nop() |
Генерирует инструкцию бездействия. |
int |
parameterSlot |
Возвращает слот локальной переменной, связанной с указанным параметром. |
default CodeBuilder |
pop() |
Генерирует инструкцию для удаления верхнего значения из стека операндов. |
default CodeBuilder |
pop2() |
Генерирует инструкцию для удаления одного или двух верхних значений со стека операндов. |
default CodeBuilder |
putfield |
Генерирует инструкцию для задания значения поля в объекте. |
default CodeBuilder |
putfield |
Генерирует инструкцию для задания значения поля в объекте. |
default CodeBuilder |
putstatic |
Генерирует инструкцию для задания значения статического поля в классе. |
default CodeBuilder |
putstatic |
Генерирует инструкцию для задания значения статического поля в классе. |
int |
receiverSlot() |
Возвращает слот локальной переменной, связанный с получателем. |
default CodeBuilder |
return_() |
Генерирует инструкцию для возврата void из данного метода. |
default CodeBuilder |
return_ |
Генерирует инструкцию возврата. |
default CodeBuilder |
saload() |
Генерирует инструкцию загрузки из массива short. |
default CodeBuilder |
sastore() |
Генерирует инструкцию сохранения в массив short. |
default CodeBuilder |
sipush |
|
Label |
startLabel() |
Возвращает метку, связанную с началом текущего блока. |
default CodeBuilder |
storeLocal |
Генерирует инструкцию сохранения значения в локальную переменную. |
default CodeBuilder |
swap() |
Генерирует инструкцию обмена значениями двух верхних элементов стека операндов. |
default CodeBuilder |
tableswitch |
Генерирует инструкцию доступа к таблице переходов по индексу и перехода. |
default CodeBuilder |
tableswitch |
Генерирует инструкцию доступа к таблице переходов по индексу и перехода. |
default CodeBuilder |
transforming |
Применяет преобразование к коду, созданному обработчиком, направляя результаты в этот билдер. |
default CodeBuilder |
trying |
Добавляет блок «try-catch», состоящий из одного блока try и нуля или более блоков catch. |
Методы, объявленные в интерфейсе java.lang.classfile.ClassFileBuilder
accept, constantPool, transform, with
Подробное описание методов
newLabel
Label newLabel()
labelBinding(java.lang.classfile.Label).- Возвращает:
- новую свободную метку
startLabel
Label startLabel()
block(Consumer) или ifThenElse(Consumer, Consumer), текущий блок будет всем телом метода.- Возвращает:
- метку, связанную с началом текущего блока
endLabel
Label endLabel()
block(Consumer) или ifThenElse(Consumer, Consumer), текущий блок будет всем телом метода.- Возвращает:
- метку, связанную с концом текущего блока
receiverSlot
int receiverSlot()
- Возвращает:
- слот локальной переменной, связанной с получателем
- Выбрасывает:
-
IllegalStateException- если это статический метод
parameterSlot
int parameterSlot(int paramNo)
long и double требуют двух слотов.- Параметры:
-
paramNo- индекс параметра - Возвращает:
- слот локальной переменной, связанной с указанным параметром
allocateLocal
int allocateLocal(TypeKind typeKind)
maxLocals исходного метода. Для метода, который создаётся непосредственно, новые локальные переменные начинаются после последнего параметра слота. Если текущий билдер кода является CodeBuilder.BlockCodeBuilder, в конце блока локальные переменные сбрасываются до их значения в начале блока.
- Параметры:
-
typeKind- тип локальной переменной - Возвращает:
- слот локальной переменной новой локальной переменной
transforming
default CodeBuilder transforming(CodeTransform transform, Consumer<CodeBuilder> handler)
- Примечание API:
- Это аналогично
ClassFileBuilder.transform(java.lang.classfile.CompoundElement<E>, java.lang.classfile.ClassFileTransform<?, E, B>), но это не требует, чтобы элементы кода были сначала просмотрены какCodeModel. - Параметры:
-
transform- преобразование, которое нужно применить к коду, созданному обработчиком -
handler- обработчик, который получаетCodeBuilderдля построения кода - Возвращает:
- этот билдер
block
default CodeBuilder block(Consumer<CodeBuilder.BlockCodeBuilder> handler)
Внутри этого блока startLabel() и endLabel() соответствуют началу и концу блока, а CodeBuilder.BlockCodeBuilder.breakLabel() также соответствует концу блока или позиции курсора сразу после этого вызова в этом билдере.
- Параметры:
-
handler- обработчик, который получаетCodeBuilder.BlockCodeBuilderдля генерации тела лексического блока - Возвращает:
- этот билдер
ifThen
default CodeBuilder ifThen(Consumer<CodeBuilder.BlockCodeBuilder> thenHandler)
boolean вверху стека операндов. Управление потоком входит в блок "then", если значение представляет true. CodeBuilder.BlockCodeBuilder.breakLabel() для блока "then" соответствует позиции курсора сразу после этого вызова в этом билдере.
- Параметры:
-
thenHandler- обработчик, который получает CodeBuilder.BlockCodeBuilder для генерации телаif - Возвращает:
- этот билдер
- См. также:
ifThen
default CodeBuilder ifThen(Opcode opcode, Consumer<CodeBuilder.BlockCodeBuilder> thenHandler)
opcode выполняется. CodeBuilder.BlockCodeBuilder.breakLabel() для блока "then" соответствует позиции курсора сразу после этого вызова в этом билдере.
- Параметры:
-
opcode- код операции для инструкции ветвления, которая принимает один или два операнда в стеке -
thenHandler- обработчик, который получаетCodeBuilder.BlockCodeBuilderдля генерации телаif - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- если код операции не соответствует инструкции ветвления, которая принимает один или два операнда
ifThenElse
default CodeBuilder ifThenElse(Consumer<CodeBuilder.BlockCodeBuilder> thenHandler, Consumer<CodeBuilder.BlockCodeBuilder> elseHandler)
boolean вверху стека операндов. Управление потоком входит в блок "then", если значение представляет true, и входит в блок "else" в противном случае. CodeBuilder.BlockCodeBuilder.breakLabel() для каждого блока соответствует позиции курсора сразу после этого вызова в этом билдере.
- Параметры:
-
thenHandler- обработчик, который получаетCodeBuilder.BlockCodeBuilderдля генерации телаif -
elseHandler- обработчик, который получаетCodeBuilder.BlockCodeBuilderдля генерации телаelse - Возвращает:
- этот билдер
- См. также:
ifThenElse
default CodeBuilder ifThenElse(Opcode opcode, Consumer<CodeBuilder.BlockCodeBuilder> thenHandler, Consumer<CodeBuilder.BlockCodeBuilder> elseHandler)
opcode выполняется, и входит в блок "else" в противном случае. CodeBuilder.BlockCodeBuilder.breakLabel() для каждого блока соответствует позиции курсора сразу после этого вызова в этом билдере.
- Параметры:
-
opcode- код операции для инструкции ветвления, которая принимает один или два операнда в стеке -
thenHandler- обработчик, который получает CodeBuilder.BlockCodeBuilder для генерации телаif -
elseHandler- обработчик, который получает CodeBuilder.BlockCodeBuilder для генерации телаelse - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- если код операции не соответствует инструкции ветвления, которая принимает один или два операнда
trying
default CodeBuilder trying(Consumer<CodeBuilder.BlockCodeBuilder> tryHandler, Consumer<CodeBuilder.CatchBuilder> catchesHandler)
Метка CodeBuilder.BlockCodeBuilder.breakLabel() для блока try и всех блоков catch в catchesHandler соответствует позиции курсора сразу после этого вызова в этом билдере.
- Параметры:
-
tryHandler- обработчик, который получаетCodeBuilder.BlockCodeBuilderдля генерации тела блока try. -
catchesHandler- обработчик, который получаетCodeBuilder.CatchBuilderдля генерации тел блоков catch. - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- если блок try пустой - См. также:
loadLocal
default CodeBuilder loadLocal(TypeKind tk, int slot)
- Параметры:
-
tk- тип загрузки -
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиtkравенvoidилиslotвыходит за пределы допустимого диапазона - См. также:
storeLocal
default CodeBuilder storeLocal(TypeKind tk, int slot)
- Параметры:
-
tk- тип сохранения -
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиtkравенvoidилиslotвыходит за пределы допустимого диапазона - См. также:
branch
default CodeBuilder branch(Opcode op, Label target)
Это может сгенерировать несколько инструкций для достижения того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлено, код операции имеет размер 3, и target не может быть закодирован как смещение BCI в [-32768, 32767].
- Параметры:
-
op- код операции перехода -
target- целевая метка - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиopне является типомOpcode.Kind.BRANCH - См. также:
return_
default CodeBuilder return_(TypeKind tk)
- Параметры:
-
tk- тип возврата - Возвращает:
- этот билдер
- См. также:
fieldAccess
default CodeBuilder fieldAccess(Opcode opcode, FieldRefEntry ref)
- Параметры:
-
opcode- код операции доступа к полю -
ref- ссылка на поле - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиopcodeне является типомOpcode.Kind.FIELD_ACCESS - См. также:
fieldAccess
default CodeBuilder fieldAccess(Opcode opcode, ClassDesc owner, String name, ClassDesc type)
- Параметры:
-
opcode- код операции доступа к полю -
owner- класс -
name- имя поля -
type- тип поля - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиopcodeне является типомOpcode.Kind.FIELD_ACCESS, илиownerявляется примитивным типом - См. также:
invoke
default CodeBuilder invoke(Opcode opcode, MemberRefEntry ref)
- Параметры:
-
opcode- код операции вызова -
ref- ссылка на метод или интерфейсный метод - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиopcodeне является типомOpcode.Kind.INVOKE - См. также:
invoke
default CodeBuilder invoke(Opcode opcode, ClassDesc owner, String name, MethodTypeDesc desc, boolean isInterface)
- Параметры:
-
opcode- код операции вызова -
owner- класс -
name- имя метода -
desc- тип метода -
isInterface- является ли класс владельца интерфейсом - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиopcodeне является типомOpcode.Kind.INVOKE, илиownerявляется примитивным типом - См. также:
arrayLoad
default CodeBuilder arrayLoad(TypeKind tk)
- Параметры:
-
tk- тип элемента массива - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиtkравенvoid - См. также:
arrayStore
default CodeBuilder arrayStore(TypeKind tk)
- Параметры:
-
tk- тип элемента массива - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиtkравенvoid - См. также:
conversion
default CodeBuilder conversion(TypeKind fromType, TypeKind toType)
fromType в toType.- Параметры:
-
fromType- исходный тип -
toType- целевой тип - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- для преобразований типовvoidилиreference - См. также:
loadConstant
default CodeBuilder loadConstant(ConstantDesc value)
- Параметры:
-
value- значение константы, может бытьnull - Возвращает:
- этот билдер
- См. также:
loadConstant
default CodeBuilder loadConstant(int value)
int на стек операндов. Это эквивалентно loadConstant(Integer.valueOf(value)).- Параметры:
-
value- значение int - Возвращает:
- этот билдер
- См. также:
loadConstant
default CodeBuilder loadConstant(long value)
long на стек операндов. Это эквивалентно loadConstant(Long.valueOf(value)).- Параметры:
-
value- значение long - Возвращает:
- этот билдер
- См. также:
loadConstant
default CodeBuilder loadConstant(float value)
float на стек операндов. Это эквивалентно loadConstant(Float.valueOf(value)). Все значения NaN типа float могут быть или не быть свёрнуты в одно «каноническое» значение NaN.
- Параметры:
-
value- значение float - Возвращает:
- этот билдер
- См. также:
loadConstant
default CodeBuilder loadConstant(double value)
double на стек операндов. Это эквивалентно loadConstant(Double.valueOf(value)). Все значения NaN типа double могут быть или не быть свёрнуты в одно «каноническое» значение NaN.
- Параметры:
-
value- значение double - Возвращает:
- этот билдер
- См. также:
nop
default CodeBuilder nop()
- Возвращает:
- этот билдер
- См. также:
newBoundLabel
default Label newBoundLabel()
- Возвращает:
- этот билдер
- См. также:
labelBinding
default CodeBuilder labelBinding(Label label)
- Примечание API:
- Привязываемая метка необязательно должна быть из этого билдера; она может быть из другого проанализированного
CodeModel. - Параметры:
-
label- метка - Возвращает:
- этот билдер
- См. также:
lineNumber
default CodeBuilder lineNumber(int line)
Этот вызов может быть проигнорирован в соответствии с ClassFile.LineNumbersOption.
- Параметры:
-
line- номер строки - Возвращает:
- этот билдер
- См. также:
exceptionCatch
default CodeBuilder exceptionCatch(Label start, Label end, Label handler, ClassEntry catchType)
Этот вызов может быть проигнорирован, если какая-либо из аргументных меток не привязана и ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлено.
- Параметры:
-
start- начало блока try -
end- конец блока try -
handler- начало обработчика исключений -
catchType- тип исключения, может бытьnullдля перехвата всех исключений и ошибок - Возвращает:
- этот билдер
- См. также:
exceptionCatch
default CodeBuilder exceptionCatch(Label start, Label end, Label handler, Optional<ClassEntry> catchType)
Этот вызов может быть проигнорирован, если какая-либо из аргументных меток не привязана и ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлено.
- Параметры:
-
start- начало блока try -
end- конец блока try -
handler- начало обработчика исключений -
catchType- необязательный тип исключения, пусто для перехвата всех исключений и ошибок - Возвращает:
- этот билдер
- См. также:
exceptionCatch
default CodeBuilder exceptionCatch(Label start, Label end, Label handler, ClassDesc catchType)
Этот вызов может быть проигнорирован, если какая-либо из аргументных меток не привязана и ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлено.
- Параметры:
-
start- начало блока try -
end- конец блока try -
handler- начало обработчика исключений -
catchType- тип исключения - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиcatchTypeпримитивный - См. также:
exceptionCatchAll
default CodeBuilder exceptionCatchAll(Label start, Label end, Label handler)
Этот вызов может быть проигнорирован, если какая-либо из аргументных меток не привязана и ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлено.
- Параметры:
-
start- начало блока try -
end- конец блока try -
handler- начало обработчика исключений - Возвращает:
- этот билдер
- См. также:
characterRange
default CodeBuilder characterRange(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags)
Этот вызов может быть проигнорирован, если ClassFile.DebugElementsOption.DROP_DEBUG установлено, или если какая-либо из аргументных меток не привязана и ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлено.
- Параметры:
-
startScope- начальный предел диапазона символов -
endScope- конечный предел диапазона символов -
characterRangeStart- закодированный начальный символ диапазона (включительно) -
characterRangeEnd- закодированный конечный символ диапазона (исключительно) -
flags- слово флагов, указывающее тип диапазона - Возвращает:
- этот билдер
- См. также:
Переменная
default CodeBuilder localVariable(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope)
Этот вызов может быть пропущен, если ClassFile.DebugElementsOption.DROP_DEBUG установлен или если метки аргументов не связаны, а ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлен.
- Параметры:
-
slot- слот локальной переменной -
nameEntry- имя переменной -
descriptorEntry- описание переменной -
startScope- начальный охват переменной -
endScope- конечный охват переменной - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиslotнаходится вне допустимого диапазона - См. также:
Переменная
default CodeBuilder localVariable(int slot, String name, ClassDesc descriptor, Label startScope, Label endScope)
Этот вызов может быть пропущен, если ClassFile.DebugElementsOption.DROP_DEBUG установлен или если метки аргументов не связаны, а ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлен.
- Параметры:
-
slot- слот локальной переменной -
name- имя переменной -
descriptor- описание переменной -
startScope- начальный охват переменной -
endScope- конечный охват переменной - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиslotнаходится вне допустимого диапазона - См. также:
Тип переменной
default CodeBuilder localVariableType(int slot, Utf8Entry nameEntry, Utf8Entry signatureEntry, Label startScope, Label endScope)
Этот вызов может быть пропущен, если ClassFile.DebugElementsOption.DROP_DEBUG установлен или если метки аргументов не связаны, а ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлен.
- Примечание API:
- При объявлении записи типа локальной переменной, также должна быть объявлена запись локальной переменной с описанием, полученным из стирания (JLS 4.6) подписи.
- Параметры:
-
slot- слот локальной переменной -
nameEntry- имя переменной -
signatureEntry- подпись переменной -
startScope- начальный охват переменной -
endScope- конечный охват переменной - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиslotнаходится вне допустимого диапазона - См. также:
Тип переменной
default CodeBuilder localVariableType(int slot, String name, Signature signature, Label startScope, Label endScope)
Этот вызов может быть пропущен, если ClassFile.DebugElementsOption.DROP_DEBUG установлен или если метки аргументов не связаны, а ClassFile.DeadLabelsOption.DROP_DEAD_LABELS установлен.
- Примечание API:
- При объявлении записи типа локальной переменной, также должна быть объявлена запись локальной переменной с описанием, полученным из стирания (JLS 4.6) подписи.
- Параметры:
-
slot- слот локальной переменной -
name- имя переменной -
signature- подпись переменной -
startScope- начальный охват переменной -
endScope- конечный охват переменной - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиslotнаходится вне допустимого диапазона - См. также:
aconst_null
default CodeBuilder aconst_null()
reference на стек операндов.- Возвращает:
- этот билдер
- См. также:
aaload
default CodeBuilder aaload()
reference.- Возвращает:
- этот билдер
- См. также:
aastore
default CodeBuilder aastore()
reference.- Возвращает:
- этот билдер
- См. также:
aload
default CodeBuilder aload(int slot)
reference из локальной переменной. Это также может сгенерировать инструкции aload_<N> и wide aload.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиslotнаходится вне допустимого диапазона - См. также:
anewarray
default CodeBuilder anewarray(ClassEntry classEntry)
reference.- Параметры:
-
classEntry- тип компонента - Возвращает:
- этот билдер
- См. также:
anewarray
default CodeBuilder anewarray(ClassDesc className)
reference.- Параметры:
-
className- тип компонента - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиclassNameпредставляет примитивный тип - См. также:
areturn
default CodeBuilder areturn()
reference из этого метода.- Возвращает:
- этот билдер
- См. также:
длина массива
default CodeBuilder arraylength()
- Возвращает:
- этот билдер
- См. также:
astore
default CodeBuilder astore(int slot)
reference в локальную переменную. Такая инструкция также может сохранить returnAddress. Это также может сгенерировать инструкции astore_<N> и wide astore.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиslotвыходит за пределы диапазона - См. также:
athrow
default CodeBuilder athrow()
- Возвращает:
- этот билдер
- См. также:
baload
bastore
bipush
default CodeBuilder bipush(int b)
int в диапазоне byte ([-128, 127]) на стек операндов.- Параметры:
-
b- целое число в диапазоне байта - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиbвыходит за пределы диапазона байта - См. также:
caload
default CodeBuilder caload()
char.- Возвращает:
- этот билдер
- См. также:
castore
default CodeBuilder castore()
char.- Возвращает:
- этот билдер
- См. также:
checkcast
default CodeBuilder checkcast(ClassEntry type)
ClassCastException, если проверка завершается неудачно.- Параметры:
-
type- тип объекта - Возвращает:
- этот билдер
- См. также:
checkcast
default CodeBuilder checkcast(ClassDesc type)
ClassCastException, если проверка завершается неудачно.- Параметры:
-
type- тип объекта - Возвращает:
- этот билдер
- Выбрасывает:
-
IllegalArgumentException- еслиtypeпредставляет примитивный тип - См. также:
d2f
d2i
d2l
dadd
default CodeBuilder dadd()
doubles.- Возвращает:
- этот билдер
- См. также:
daload
default CodeBuilder daload()
double.- Возвращает:
- этот билдер
- См. также:
dastore
default CodeBuilder dastore()
double.- Возвращает:
- этот билдер
- См. также:
dcmpg
dcmpl
dconst_0
default CodeBuilder dconst_0()
double константу 0 на стек операндов.- Возвращает:
- этот билдер
- См. также:
dconst_1
default CodeBuilder dconst_1()
double константу 1 на стек операндов.- Возвращает:
- этот билдер
- См. также:
ddiv
default CodeBuilder ddiv()
doubles.- Возвращает:
- этот билдер
- См. также:
dload
default CodeBuilder dload(int slot)
double из локальной переменной. Это может также сгенерировать инструкции dload_<N> и wide dload.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotнаходится вне диапазона - См. также:
dmul
default CodeBuilder dmul()
doubles.- Возвращает:
- этот билдер
- См. также:
dneg
default CodeBuilder dneg()
double.- Возвращает:
- этот билдер
- См. также:
drem
default CodeBuilder drem()
double.- Возвращает:
- этот билдер
- См. также:
dreturn
default CodeBuilder dreturn()
double из этого метода.- Возвращает:
- этот билдер
- См. также:
dstore
default CodeBuilder dstore(int slot)
double в локальной переменной. Это может также сгенерировать инструкции dstore_<N> и wide dstore.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotнаходится вне диапазона - См. также:
dsub
default CodeBuilder dsub()
doubles.- Возвращает:
- этот билдер
- См. также:
dup
default CodeBuilder dup()
- Возвращает:
- этот билдер
- См. также:
dup2
default CodeBuilder dup2()
- Возвращает:
- этот билдер
- См. также:
dup2_x1
default CodeBuilder dup2_x1()
- Возвращает:
- этот билдер
- См. также:
dup2_x2
default CodeBuilder dup2_x2()
- Возвращает:
- этот билдер
- См. также:
dup_x1
default CodeBuilder dup_x1()
- Возвращает:
- этот билдер
- См. также:
dup_x2
default CodeBuilder dup_x2()
- Возвращает:
- этот билдер
- См. также:
f2d
f2i
f2l
fadd
default CodeBuilder fadd()
floats.- Возвращает:
- этот билдер
- См. также:
faload
default CodeBuilder faload()
float.- Возвращает:
- этот билдер
- См. также:
fastore
default CodeBuilder fastore()
float.- Возвращает:
- этот билдер
- См. также:
fcmpg
fcmpl
fconst_0
default CodeBuilder fconst_0()
float 0 в стек операндов.- Возвращает:
- этот билдер
- См. также:
fconst_1
default CodeBuilder fconst_1()
float 1 в стек операндов.- Возвращает:
- этот билдер
- См. также:
fconst_2
default CodeBuilder fconst_2()
float 2 в стек операндов.- Возвращает:
- этот билдер
- См. также:
fdiv
default CodeBuilder fdiv()
floats.- Возвращает:
- этот билдер
- См. также:
fload
default CodeBuilder fload(int slot)
float из локальной переменной. Это также может сгенерировать инструкции fload_<N> и wide fload.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotвне диапазона - См. также:
fmul
default CodeBuilder fmul()
floats.- Возвращает:
- этот билдер
- См. также:
fneg
default CodeBuilder fneg()
float.- Возвращает:
- этот билдер
- См. также:
frem
default CodeBuilder frem()
floats.- Возвращает:
- этот билдер
- См. также:
freturn
default CodeBuilder freturn()
float из этого метода.- Возвращает:
- этот билдер
- См. также:
fstore
default CodeBuilder fstore(int slot)
float в локальной переменной. Это также может сгенерировать инструкции fstore_<N> и wide fstore.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotвне диапазона - См. также:
fsub
default CodeBuilder fsub()
floats.- Возвращает:
- этот билдер
- См. также:
getfield
default CodeBuilder getfield(FieldRefEntry ref)
- Параметры:
-
ref- ссылка на поле - Возвращает:
- этот билдер
- См. также:
getfield
default CodeBuilder getfield(ClassDesc owner, String name, ClassDesc type)
- Параметры:
-
owner- класс-владелец -
name- имя поля -
type- тип поля - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
getstatic
default CodeBuilder getstatic(FieldRefEntry ref)
- Параметры:
-
ref- ссылка на поле - Возвращает:
- этот билдер
- См. также:
getstatic
default CodeBuilder getstatic(ClassDesc owner, String name, ClassDesc type)
- Параметры:
-
owner- класс-владелец -
name- имя поля -
type- тип поля - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
goto_
default CodeBuilder goto_(Label target)
Также может генерировать инструкции goto_w, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлен.
- Примечание API:
- Имя инструкции —
goto, что совпадает с зарезервированным ключевым словом языка Java, поэтому этот метод назван с дополнительным суффиксом_. - Параметры:
-
target- целевая метка перехода - Возвращает:
- этот билдер
- См. также:
goto_w
default CodeBuilder goto_w(Label target)
- Параметры:
-
target- целевая метка перехода - Возвращает:
- этот билдер
- См. также:
i2b
i2c
i2d
i2f
i2l
i2s
iadd
default CodeBuilder iadd()
ints.- Возвращает:
- этот билдер
- См. также:
iaload
default CodeBuilder iaload()
int.- Возвращает:
- этот билдер
- См. также:
Искомультипликация
iastore
default CodeBuilder iastore()
int.- Возвращает:
- этот билдер
- См. также:
iconst_0
default CodeBuilder iconst_0()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
iconst_1
default CodeBuilder iconst_1()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
iconst_2
default CodeBuilder iconst_2()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
iconst_3
default CodeBuilder iconst_3()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
iconst_4
default CodeBuilder iconst_4()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
iconst_5
default CodeBuilder iconst_5()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
iconst_-1
default CodeBuilder iconst_m1()
int) на стек операндов.- Возвращает:
- этот билдер
- См. также:
idiv
default CodeBuilder idiv()
ints).- Возвращает:
- этот билдер
- См. также:
if_acmpeq
default CodeBuilder if_acmpeq(Label target)
reference) operand1 == operand2 успешно. Может сгенерировать несколько инструкций, чтобы добиться того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлен, и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Параметры:
-
target- целевой метки перехода - Возвращает:
- этот билдер
- См. также:
if_acmpne
default CodeBuilder if_acmpne(Label target)
reference) operand1 != operand2 успешно. Может сгенерировать несколько инструкций, чтобы добиться того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлен, и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Параметры:
-
target- целевой метки перехода - Возвращает:
- этот билдер
- См. также:
if_icmpeq
default CodeBuilder if_icmpeq(Label target)
int) operand1 == operand2 успешно. Может сгенерировать несколько инструкций, чтобы добиться того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлен, и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Параметры:
-
target- целевой метки перехода - Возвращает:
- этот билдер
- См. также:
if_icmpge
default CodeBuilder if_icmpge(Label target)
int) operand1 >= operand2 успешно. Может сгенерировать несколько инструкций, чтобы добиться того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлен, и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Параметры:
-
target- целевой метки перехода - Возвращает:
- этот билдер
- См. также:
if_icmpgt
default CodeBuilder if_icmpgt(Label target)
int operand1 > operand2 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
if_icmple
default CodeBuilder if_icmple(Label target)
int operand1 <= operand2 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
if_icmplt
default CodeBuilder if_icmplt(Label target)
int operand1 < operand2 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
if_icmpne
default CodeBuilder if_icmpne(Label target)
int operand1 != operand2 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
ifnonnull
default CodeBuilder ifnonnull(Label target)
reference не null. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
ifnull
default CodeBuilder ifnull(Label target)
reference null. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
ifeq
default CodeBuilder ifeq(Label target)
int с нулём == 0 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
ifge
default CodeBuilder ifge(Label target)
int с нулём >= 0 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
ifgt
default CodeBuilder ifgt(Label target)
int с нулём > 0 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
ifle
default CodeBuilder ifle(Label target)
int с нулём <= 0 успешно. Это может сгенерировать несколько инструкций для достижения того же результата, если установлен параметр ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS и
target не может быть закодирован как смещение BCI в [-32768, 32767].
- Parameters:
-
target- целевой метка перехода - Returns:
- этот билдер
- See Also:
iflt
default CodeBuilder iflt(Label target)
int с нулём < 0 успешно. Это может сгенерировать несколько инструкций для достижения того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлено и
target нельзя закодировать как смещение BCI в [-32768, 32767].
- Параметры:
-
target- целевая метка ветвления - Возвращает:
- этот билдер
- См. также:
ifne
default CodeBuilder ifne(Label target)
int с нулём != 0 успешно. Это может сгенерировать несколько инструкций для достижения того же эффекта, если ClassFile.ShortJumpsOption.FIX_SHORT_JUMPS установлено и
target нельзя закодировать как смещение BCI в [-32768, 32767].
- Параметры:
-
target- целевая метка ветвления - Возвращает:
- этот билдер
- См. также:
iinc
default CodeBuilder iinc(int slot, int val)
Также могут быть сгенерированы инструкции wide iinc, если slot превышает 255 или val превышает диапазон byte.
- Параметры:
-
slot- слот локальной переменной -
val- значение приращения - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotилиvalвыходят за пределы диапазона - См. также:
iload
default CodeBuilder iload(int slot)
Также могут быть сгенерированы инструкции iload_<N> и wide iload.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotвыходит за пределы диапазона - См. также:
imul
default CodeBuilder imul()
- Возвращает:
- этот билдер
- См. также:
ineg
default CodeBuilder ineg()
- Возвращает:
- этот билдер
- См. также:
instanceOf
default CodeBuilder instanceOf(ClassEntry target)
boolean в стеке операндов.- Примечание API:
- Имя инструкции -
instanceof, что совпадает с зарезервированным ключевым словом языка Java, поэтому этот метод имеет название с использованием camelCase. - Параметры:
-
target- целевой тип - Возвращает:
- этот билдер
- См. также:
instanceOf
default CodeBuilder instanceOf(ClassDesc target)
boolean в стеке операндов.- Примечание API:
- Имя инструкции -
instanceof, что совпадает с зарезервированным ключевым словом языка Java, поэтому этот метод имеет название с использованием camelCase. - Параметры:
-
target- целевой тип - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиtargetпредставляет примитивный тип - См. также:
invokedynamic
default CodeBuilder invokedynamic(InvokeDynamicEntry ref)
- Параметры:
-
ref- динамическое место вызова - Возвращает:
- этот билдер
- См. также:
invokedynamic
default CodeBuilder invokedynamic(DynamicCallSiteDesc ref)
- Параметры:
-
ref- динамическое место вызова - Возвращает:
- этот билдер
- См. также:
invokeinterface
default CodeBuilder invokeinterface(InterfaceMethodRefEntry ref)
- Параметры:
-
ref- ссылка на метод интерфейса - Возвращает:
- этот билдер
- См. также:
invokeinterface
default CodeBuilder invokeinterface(ClassDesc owner, String name, MethodTypeDesc type)
- Параметры:
-
owner- владелец интерфейса -
name- имя метода -
type- тип метода - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
invokespecial
default CodeBuilder invokespecial(InterfaceMethodRefEntry ref)
- Параметры:
-
ref- ссылка на метод интерфейса - Возвращает:
- этот билдер
- См. также:
invokespecial
default CodeBuilder invokespecial(MethodRefEntry ref)
- Параметры:
-
ref- ссылка на метод - Возвращает:
- этот билдер
- См. также:
invokespecial
default CodeBuilder invokespecial(ClassDesc owner, String name, MethodTypeDesc type)
- Параметры:
-
owner- владелец класса, не должен быть интерфейсом -
name- имя метода -
type- тип метода - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
invokespecial
default CodeBuilder invokespecial(ClassDesc owner, String name, MethodTypeDesc type, boolean isInterface)
- Параметры:
-
owner- владелец класса или интерфейса -
name- имя метода -
type- тип метода -
isInterface- является ли владелец интерфейсом - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
invokestatic
default CodeBuilder invokestatic(InterfaceMethodRefEntry ref)
- Параметры:
-
ref- ссылка на метод интерфейса - Возвращает:
- этот билдер
- См. также:
invokestatic
default CodeBuilder invokestatic(MethodRefEntry ref)
- Параметры:
-
ref- ссылка на метод - Возвращает:
- этот билдер
- См. также:
invokestatic
default CodeBuilder invokestatic(ClassDesc owner, String name, MethodTypeDesc type)
- Параметры:
-
owner- владелец класса, не должен быть интерфейсом -
name- имя метода -
type- тип метода - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
invokestatic
default CodeBuilder invokestatic(ClassDesc owner, String name, MethodTypeDesc type, boolean isInterface)
- Параметры:
-
owner- владелец класса или интерфейса -
name- имя метода -
type- тип метода -
isInterface- является ли владелец интерфейсом - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
invokevirtual
default CodeBuilder invokevirtual(MethodRefEntry ref)
- Параметры:
-
ref- ссылка на метод - Возвращает:
- этот билдер
- См. также:
invokevirtual
default CodeBuilder invokevirtual(ClassDesc owner, String name, MethodTypeDesc type)
- Параметры:
-
owner- владелец класса, не должен быть интерфейсом -
name- имя метода -
type- тип метода - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
ior
irem
default CodeBuilder irem()
ints.- Возвращает:
- этот билдер
- См. также:
ireturn
default CodeBuilder ireturn()
int из этого метода.- Возвращает:
- этот билдер
- См. также:
ishl
default CodeBuilder ishl()
int.- Возвращает:
- этот билдер
- См. также:
ishr
istore
default CodeBuilder istore(int slot)
int в локальную переменную. Это также может сгенерировать инструкции istore_<N> и wide istore.
- Параметры:
-
slot- номер локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotвыходит за пределы диапазона - См. также:
isub
iushr
ixor
lookupswitch
default CodeBuilder lookupswitch(Label defaultTarget, List<SwitchCase> cases)
- Параметры:
-
defaultTarget- целевой переход по умолчанию -
cases- случаи переключения - Возвращает:
- этот билдер
- См. также:
l2d
l2f
l2i
ladd
default CodeBuilder ladd()
longs.- Возвращает:
- этот билдер
- См. также:
laload
default CodeBuilder laload()
long.- Возвращает:
- этот билдер
- См. также:
land
default CodeBuilder land()
longs.- Возвращает:
- этот билдер
- См. также:
lastore
default CodeBuilder lastore()
long.- Возвращает:
- этот билдер
- См. также:
lcmp
default CodeBuilder lcmp()
longs.- Возвращает:
- этот билдер
- См. также:
lconst_0
default CodeBuilder lconst_0()
long на стек операндов.- Возвращает:
- этот билдер
- См. также:
lconst_1
default CodeBuilder lconst_1()
long на стек операндов.- Возвращает:
- этот билдер
- См. также:
ldc
default CodeBuilder ldc(ConstantDesc value)
- Примечание API:
-
loadConstantгенерирует более оптимальные инструкции и должна использоваться для общих констант, если инструкцияldcне строго требуется. - Параметры:
-
value- значение константы - Возвращает:
- этот билдер
- См. также:
ldc
ldiv
default CodeBuilder ldiv()
longs.- Возвращает:
- этот билдер
- См. также:
lload
default CodeBuilder lload(int slot)
long из локальной переменной. Может также сгенерировать инструкции lload_<N> и wide lload.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotвыходит за пределы допустимого диапазона - См. также:
lmul
default CodeBuilder lmul()
longs.- Возвращает:
- этот билдер
- См. также:
lneg
default CodeBuilder lneg()
long.- Возвращает:
- этот билдер
- См. также:
lor
default CodeBuilder lor()
longs.- Возвращает:
- этот билдер
- См. также:
lrem
default CodeBuilder lrem()
longs.- Возвращает:
- этот билдер
- См. также:
lreturn
default CodeBuilder lreturn()
long из этого метода.- Возвращает:
- этот билдер
- См. также:
lshl
default CodeBuilder lshl()
long.- Возвращает:
- этот билдер
- См. также:
lshr
lstore
default CodeBuilder lstore(int slot)
long в локальную переменную. Может также сгенерировать инструкции lstore_<N> и wide lstore.
- Параметры:
-
slot- слот локальной переменной - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиslotвыходит за пределы допустимого диапазона - См. также:
lsub
default CodeBuilder lsub()
longs.- Возвращает:
- этот билдер
- См. также:
lushr
lxor
default CodeBuilder lxor()
longs.- Возвращает:
- этот билдер
- См. также:
monitorenter
default CodeBuilder monitorenter()
- Возвращает:
- этот билдер
- См. также:
monitorexit
default CodeBuilder monitorexit()
- Возвращает:
- этот билдер
- См. также:
multianewarray
default CodeBuilder multianewarray(ClassEntry array, int dims)
- Параметры:
-
array- тип массива -
dims- количество измерений - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиdimsнаходится вне допустимого диапазона - См. также:
multianewarray
default CodeBuilder multianewarray(ClassDesc array, int dims)
- Параметры:
-
array- тип массива -
dims- количество измерений - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиarrayпредставляет примитивный тип или еслиdimsнаходится вне допустимого диапазона - См. также:
new_
default CodeBuilder new_(ClassEntry clazz)
- Примечание API:
- Имя инструкции —
new, что совпадает с зарезервированным ключевым словом языка программирования Java, поэтому этот метод назван с дополнительным_суффиксом вместо него. - Параметры:
-
clazz- новый тип класса - Возвращает:
- этот билдер
- См. также:
new_
default CodeBuilder new_(ClassDesc clazz)
- Примечание API:
- Имя инструкции —
new, что совпадает с зарезервированным ключевым словом языка программирования Java, поэтому этот метод назван с дополнительным_суффиксом вместо него. - Параметры:
-
clazz- новый тип класса - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиclazzпредставляет примитивный тип - См. также:
newarray
default CodeBuilder newarray(TypeKind typeKind)
- Параметры:
-
typeKind- тип массива примитивного типа - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- когдаtypeKindне является допустимым компонентом примитивного массива - См. также:
pop
default CodeBuilder pop()
- Возвращает:
- этот билдер
- См. также:
pop2
default CodeBuilder pop2()
- Возвращает:
- этот билдер
- См. также:
putfield
default CodeBuilder putfield(FieldRefEntry ref)
- Параметры:
-
ref- ссылка на поле - Возвращает:
- этот билдер
- См. также:
putfield
default CodeBuilder putfield(ClassDesc owner, String name, ClassDesc type)
- Параметры:
-
owner- владеющий класс -
name- имя поля -
type- тип поля - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
putstatic
default CodeBuilder putstatic(FieldRefEntry ref)
- Параметры:
-
ref- ссылка на поле - Возвращает:
- этот билдер
- См. также:
putstatic
default CodeBuilder putstatic(ClassDesc owner, String name, ClassDesc type)
- Параметры:
-
owner- владеющий класс или интерфейс -
name- имя поля -
type- тип поля - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиownerпредставляет примитивный тип - См. также:
return_
default CodeBuilder return_()
void из этого метода.- Примечание API:
- Имя инструкции —
return, что совпадает с зарезервированным ключевым словом языка программирования Java, поэтому этот метод назван с дополнительным_суффиксом вместо него. - Возвращает:
- этот билдер
- См. также:
saload
default CodeBuilder saload()
short.- Возвращает:
- этот билдер
- См. также:
sastore
default CodeBuilder sastore()
short.- Возвращает:
- этот билдер
- См. также:
sipush
default CodeBuilder sipush(int s)
int) в диапазоне short, [-32768, 32767], на стек операндов.- Параметры:
-
s- целое число в диапазоне short - Возвращает:
- этот билдер
- Исключения:
-
IllegalArgumentException- еслиsвыходит за пределы диапазона short - См. также:
swap
default CodeBuilder swap()
- Возвращает:
- этот билдер
- См. также:
tableswitch
default CodeBuilder tableswitch(int low, int high, Label defaultTarget, List<SwitchCase> cases)
- Параметры:
-
low- минимальный ключ (включительно) -
high- максимальный ключ (включительно) -
defaultTarget- целевой адрес перехода по умолчанию -
cases- список случаев переключения - Возвращает:
- этот билдер
- См. также:
tableswitch
default CodeBuilder tableswitch(Label defaultTarget, List<SwitchCase> cases)
cases.- Параметры:
-
defaultTarget- целевой адрес перехода по умолчанию -
cases- список случаев переключения - Возвращает:
- этот билдер
- См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/CodeBuilder.html