インタフェースjava.lang.classfile.Labelの
使用
Labelを使用するパッケージ
パッケージ
説明
クラス・ファイルの解析、生成および変換ライブラリを提供します。
java.lang.classfile
ライブラリのclass
ファイル属性を記述するインタフェースを提供します。java.lang.classfile
ライブラリのコード手順を説明するインタフェースを提供します。-
java.lang.classfileでのLabelの使用
Labelを返すjava.lang.classfileのメソッド修飾子と型メソッド説明CodeBuilder.BlockCodeBuilder.breakLabel()
コントロールが親ブロックに戻される場所を特定するラベルを返します。CodeBuilder.endLabel()
現在のブロックの末尾に関連付けられたラベルを返します。TypeAnnotation.LocalVarTargetInfo.endLabel()
指定されたローカル変数は、間隔(start_pc、start_pc + length)のコード配列へのインデックス値を持ちます。つまり、start_pc (包含)とstart_pc + length (除外)です。default Label
CodeBuilder.newBoundLabel()
現在の位置にバインドされた新しいラベルを作成します。CodeBuilder.newLabel()
バインドされていない新しいラベルを返します。CodeBuilder.startLabel()
現在のブロックの先頭に関連付けられたラベルを返します。TypeAnnotation.LocalVarTargetInfo.startLabel()
指定されたローカル変数は、間隔(start_pc、start_pc + length)のコード配列へのインデックス値を持ちます。つまり、start_pc (包含)とstart_pc + length (除外)です。TypeAnnotation.OffsetTarget.target()
instanceof式、新しい式またはメソッド参照式に対応するInstruction
の直前のラベル。TypeAnnotation.TypeArgumentTarget.target()
キャスト式、新しい式、明示的なコンストラクタ呼出し文、メソッド呼出し式またはメソッド参照式に対応するInstruction
の直前のラベル。型Labelのパラメータを持つjava.lang.classfileのメソッド修飾子と型メソッド説明default CodeBuilder
ブランチ命令を生成します。default CodeBuilder
CodeBuilder.characterRange
(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags) 文字範囲エントリを宣言します。default CodeBuilder
CodeBuilder.exceptionCatch
(Label start, Label end, Label handler, ClassEntry catchType) 例外表エントリを宣言します。default CodeBuilder
CodeBuilder.exceptionCatch
(Label start, Label end, Label handler, ClassDesc catchType) 例外表エントリを宣言します。default CodeBuilder
CodeBuilder.exceptionCatch
(Label start, Label end, Label handler, Optional<ClassEntry> catchType) 例外表エントリを宣言します。default CodeBuilder
CodeBuilder.exceptionCatchAll
(Label start, Label end, Label handler) すべての例外およびエラーを捕捉する例外表エントリを宣言します。default CodeBuilder
常に分岐する命令を生成します。default CodeBuilder
常にワイド・インデックスで分岐する命令を生成します。default CodeBuilder
reference
比較operand1 == operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
reference
比較operand1 != operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
比較operand1 == operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
比較operand1 >= operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
比較operand1 > operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
比較operand1 <= operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
比較operand1 < operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
比較operand1 != operand2
が成功した場合に分岐する命令を生成します。default CodeBuilder
int
と0(ゼロ)の== 0
の比較が成功した場合、分岐する命令を生成します。default CodeBuilder
int
と0(ゼロ)の>= 0
の比較が成功した場合、分岐する命令を生成します。default CodeBuilder
int
と0(ゼロ)の> 0
の比較が成功した場合、分岐する命令を生成します。default CodeBuilder
int
と0(ゼロ)の<= 0
の比較が成功した場合、分岐する命令を生成します。default CodeBuilder
int
と0(ゼロ)の< 0
の比較が成功した場合、分岐する命令を生成します。default CodeBuilder
int
と0(ゼロ)の!= 0
の比較が成功した場合、分岐する命令を生成します。default CodeBuilder
reference
がnull
でない場合に分岐する命令を生成します。default CodeBuilder
reference
がnull
の場合、分岐する命令を生成します。default CodeBuilder
CodeBuilder.labelBinding
(Label label) ラベルを現在の位置にバインドします。default CodeBuilder
CodeBuilder.localVariable
(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope) ローカル変数エントリを宣言します。default CodeBuilder
CodeBuilder.localVariable
(int slot, String name, ClassDesc descriptor, Label startScope, Label endScope) ローカル変数エントリを宣言します。default CodeBuilder
CodeBuilder.localVariableType
(int slot, Utf8Entry nameEntry, Utf8Entry signatureEntry, Label startScope, Label endScope) ローカル変数タイプ・エントリを宣言します。default CodeBuilder
CodeBuilder.localVariableType
(int slot, String name, Signature signature, Label startScope, Label endScope) ローカル変数タイプ・エントリを宣言します。default CodeBuilder
CodeBuilder.lookupswitch
(Label defaultTarget, List<SwitchCase> cases) キーの一致およびジャンプによってジャンプ表にアクセスする命令を生成します。ローカル変数ターゲット情報を返します。TypeAnnotation.TargetInfo.ofCastExpr
(Label target, int typeArgumentIndex) キャスト式のi番目の型の注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofConstructorInvocationTypeArgument
(Label target, int typeArgumentIndex) 明示的なコンストラクタ呼出し文の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTarget
TypeAnnotation.TargetInfo.ofConstructorReference
(Label target) コンストラクタ参照式で::の前に型に対する注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofConstructorReferenceTypeArgument
(Label target, int typeArgumentIndex) 新しい式の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTarget
TypeAnnotation.TargetInfo.ofInstanceofExpr
(Label target) instanceof式内の型に対する注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofMethodInvocationTypeArgument
(Label target, int typeArgumentIndex) メソッド呼出し式の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTarget
TypeAnnotation.TargetInfo.ofMethodReference
(Label target) メソッド参照式内の::前の型の注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofMethodReferenceTypeArgument
(Label target, int typeArgumentIndex) メソッド参照式の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTarget
新しい式内の型に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTarget
TypeAnnotation.TargetInfo.ofOffset
(TypeAnnotation.TargetType targetType, Label target) instanceof式または新しい式内の型、またはメソッド参照式内の::前の型の注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofTypeArgument
(TypeAnnotation.TargetType targetType, Label target, int typeArgumentIndex) キャスト式内のi番目の型、または明示的な型引数リスト内のi番目の型引数で、次のいずれかの注釈のターゲットを返します: 新しい式、明示的なコンストラクタ呼出し文、メソッド呼出し式またはメソッド参照式。default CodeBuilder
CodeBuilder.tableswitch
(int low, int high, Label defaultTarget, List<SwitchCase> cases) インデックスでジャンプ表にアクセスし、ジャンプする命令を生成します。default CodeBuilder
CodeBuilder.tableswitch
(Label defaultTarget, List<SwitchCase> cases) インデックスでジャンプ表にアクセスし、ジャンプする命令を生成します。 -
java.lang.classfile.attributeでのLabelの使用
修飾子と型メソッド説明StackMapFrameInfo.UninitializedVerificationTypeInfo.newTarget()
この初期化されていないオブジェクトを作成するnew
命令の直前のラベルを返します。StackMapFrameInfo.target()
フレーム・ターゲット・ラベルを返します。型Labelのパラメータを持つjava.lang.classfile.attributeのメソッド修飾子と型メソッド説明int
CodeAttribute.labelToBci
(Label label) codeArray
内のlabel
の位置を戻します。static StackMapFrameInfo
StackMapFrameInfo.of
(Label target, List<StackMapFrameInfo.VerificationTypeInfo> locals, List<StackMapFrameInfo.VerificationTypeInfo> stack) 新しいスタック・マップ・フレームを返します。初期化されていない検証タイプ情報を返します。 -
java.lang.classfile.instructionでのLabelの使用
修飾子と型メソッド説明LookupSwitchInstruction.defaultTarget()
デフォルトのケースのターゲットを返します。TableSwitchInstruction.defaultTarget()
スイッチのデフォルトのターゲットを返します。CharacterRange.endScope()
命令範囲の終わりを返します。LocalVariable.endScope()
ローカル変数スコープの終了範囲を返します。LocalVariableType.endScope()
ローカル変数スコープの終了範囲を返します。ExceptionCatch.handler()
例外に対するハンドラを返します。LabelTarget.label()
このターゲットに対応するラベルを返します。CharacterRange.startScope()
命令範囲の開始を返します。LocalVariable.startScope()
ローカル変数スコープの開始範囲を返します。LocalVariableType.startScope()
ローカル変数スコープの開始範囲を返します。BranchInstruction.target()
この命令のブランチ・ターゲットを返します。DiscontinuedInstruction.JsrInstruction.target()
ジャンプ・サブルーチン命令のターゲットを返します。SwitchCase.target()
このケースに対応するブランチ・ターゲットを返します。ExceptionCatch.tryEnd()
保護されている命令の命令範囲の終了を返します。ExceptionCatch.tryStart()
保護されている命令の命令範囲の先頭を返します。型Labelのパラメータを持つjava.lang.classfile.instructionのメソッド修飾子と型メソッド説明static BranchInstruction
分岐命令を返します。static CharacterRange
CharacterRange.of
(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags) 文字範囲の擬似命令を返します。ジャンプ・サブルーチン命令を返します。ジャンプ・サブルーチン命令を返します。static ExceptionCatch
すべてを捕捉するための例外表擬似命令を返します。static ExceptionCatch
例外表の擬似命令を返します。static LocalVariable
LocalVariable.of
(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope) ローカル変数擬似命令を返します。static LocalVariable
ローカル変数擬似命令を返します。static LocalVariableType
LocalVariableType.of
(int slot, Utf8Entry nameEntry, Utf8Entry signatureEntry, Label startScope, Label endScope) ローカル変数型擬似命令を返します。static LocalVariableType
ローカル変数型擬似命令を返します。static LookupSwitchInstruction
LookupSwitchInstruction.of
(Label defaultTarget, List<SwitchCase> cases) ルックアップ・スイッチ命令を返します。static SwitchCase
新しいスイッチ・ケースを返します。static TableSwitchInstruction
TableSwitchInstruction.of
(int lowValue, int highValue, Label defaultTarget, List<SwitchCase> cases) 表スイッチ命令を返します。