インタフェース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 LabelCodeBuilder.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 CodeBuilderCodeBuilder.characterRange(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags) 文字範囲エントリを宣言します。default CodeBuilderCodeBuilder.exceptionCatch(Label start, Label end, Label handler, ClassEntry catchType) 例外表エントリを宣言します。default CodeBuilderCodeBuilder.exceptionCatch(Label start, Label end, Label handler, ClassDesc catchType) 例外表エントリを宣言します。default CodeBuilderCodeBuilder.exceptionCatch(Label start, Label end, Label handler, Optional<ClassEntry> catchType) 例外表エントリを宣言します。default CodeBuilderCodeBuilder.exceptionCatchAll(Label start, Label end, Label handler) すべての例外およびエラーを捕捉する例外表エントリを宣言します。default CodeBuilder常に分岐する命令を生成します。default CodeBuilder常にワイド・インデックスで分岐する命令を生成します。default CodeBuilderreference比較operand1 == operand2が成功した場合に分岐する命令を生成します。default CodeBuilderreference比較operand1 != operand2が成功した場合に分岐する命令を生成します。default CodeBuilderint比較operand1 == operand2が成功した場合に分岐する命令を生成します。default CodeBuilderint比較operand1 >= operand2が成功した場合に分岐する命令を生成します。default CodeBuilderint比較operand1 > operand2が成功した場合に分岐する命令を生成します。default CodeBuilderint比較operand1 <= operand2が成功した場合に分岐する命令を生成します。default CodeBuilderint比較operand1 < operand2が成功した場合に分岐する命令を生成します。default CodeBuilderint比較operand1 != operand2が成功した場合に分岐する命令を生成します。default CodeBuilderintと0(ゼロ)の== 0の比較が成功した場合、分岐する命令を生成します。default CodeBuilderintと0(ゼロ)の>= 0の比較が成功した場合、分岐する命令を生成します。default CodeBuilderintと0(ゼロ)の> 0の比較が成功した場合、分岐する命令を生成します。default CodeBuilderintと0(ゼロ)の<= 0の比較が成功した場合、分岐する命令を生成します。default CodeBuilderintと0(ゼロ)の< 0の比較が成功した場合、分岐する命令を生成します。default CodeBuilderintと0(ゼロ)の!= 0の比較が成功した場合、分岐する命令を生成します。default CodeBuilderreferenceがnullでない場合に分岐する命令を生成します。default CodeBuilderreferenceがnullの場合、分岐する命令を生成します。default CodeBuilderCodeBuilder.labelBinding(Label label) ラベルを現在の位置にバインドします。default CodeBuilderCodeBuilder.localVariable(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope) ローカル変数エントリを宣言します。default CodeBuilderCodeBuilder.localVariable(int slot, String name, ClassDesc descriptor, Label startScope, Label endScope) ローカル変数エントリを宣言します。default CodeBuilderCodeBuilder.localVariableType(int slot, Utf8Entry nameEntry, Utf8Entry signatureEntry, Label startScope, Label endScope) ローカル変数タイプ・エントリを宣言します。default CodeBuilderCodeBuilder.localVariableType(int slot, String name, Signature signature, Label startScope, Label endScope) ローカル変数タイプ・エントリを宣言します。default CodeBuilderCodeBuilder.lookupswitch(Label defaultTarget, List<SwitchCase> cases) キーの一致およびジャンプによってジャンプ表にアクセスする命令を生成します。ローカル変数ターゲット情報を返します。TypeAnnotation.TargetInfo.ofCastExpr(Label target, int typeArgumentIndex) キャスト式のi番目の型の注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofConstructorInvocationTypeArgument(Label target, int typeArgumentIndex) 明示的なコンストラクタ呼出し文の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTargetTypeAnnotation.TargetInfo.ofConstructorReference(Label target) コンストラクタ参照式で::の前に型に対する注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofConstructorReferenceTypeArgument(Label target, int typeArgumentIndex) 新しい式の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTargetTypeAnnotation.TargetInfo.ofInstanceofExpr(Label target) instanceof式内の型に対する注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofMethodInvocationTypeArgument(Label target, int typeArgumentIndex) メソッド呼出し式の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTargetTypeAnnotation.TargetInfo.ofMethodReference(Label target) メソッド参照式内の::前の型の注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofMethodReferenceTypeArgument(Label target, int typeArgumentIndex) メソッド参照式の明示的な型引数リストにあるi番目の型引数に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTarget新しい式内の型に対する注釈のターゲットを返します。static TypeAnnotation.OffsetTargetTypeAnnotation.TargetInfo.ofOffset(TypeAnnotation.TargetType targetType, Label target) instanceof式または新しい式内の型、またはメソッド参照式内の::前の型の注釈のターゲットを返します。TypeAnnotation.TargetInfo.ofTypeArgument(TypeAnnotation.TargetType targetType, Label target, int typeArgumentIndex) キャスト式内のi番目の型、または明示的な型引数リスト内のi番目の型引数で、次のいずれかの注釈のターゲットを返します: 新しい式、明示的なコンストラクタ呼出し文、メソッド呼出し式またはメソッド参照式。default CodeBuilderCodeBuilder.tableswitch(int low, int high, Label defaultTarget, List<SwitchCase> cases) インデックスでジャンプ表にアクセスし、ジャンプする命令を生成します。default CodeBuilderCodeBuilder.tableswitch(Label defaultTarget, List<SwitchCase> cases) インデックスでジャンプ表にアクセスし、ジャンプする命令を生成します。 -
java.lang.classfile.attributeでのLabelの使用
修飾子と型メソッド説明StackMapFrameInfo.UninitializedVerificationTypeInfo.newTarget()この初期化されていないオブジェクトを作成するnew命令の直前のラベルを返します。StackMapFrameInfo.target()フレーム・ターゲット・ラベルを返します。型Labelのパラメータを持つjava.lang.classfile.attributeのメソッド修飾子と型メソッド説明intCodeAttribute.labelToBci(Label label) codeArray内のlabelの位置を戻します。static StackMapFrameInfoStackMapFrameInfo.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 CharacterRangeCharacterRange.of(Label startScope, Label endScope, int characterRangeStart, int characterRangeEnd, int flags) 文字範囲の擬似命令を返します。ジャンプ・サブルーチン命令を返します。ジャンプ・サブルーチン命令を返します。static ExceptionCatchすべてを捕捉するための例外表擬似命令を返します。static ExceptionCatch例外表の擬似命令を返します。static LocalVariableLocalVariable.of(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope) ローカル変数擬似命令を返します。static LocalVariableローカル変数擬似命令を返します。static LocalVariableTypeLocalVariableType.of(int slot, Utf8Entry nameEntry, Utf8Entry signatureEntry, Label startScope, Label endScope) ローカル変数型擬似命令を返します。static LocalVariableTypeローカル変数型擬似命令を返します。static LookupSwitchInstructionLookupSwitchInstruction.of(Label defaultTarget, List<SwitchCase> cases) ルックアップ・スイッチ命令を返します。static SwitchCase新しいスイッチ・ケースを返します。static TableSwitchInstructionTableSwitchInstruction.of(int lowValue, int highValue, Label defaultTarget, List<SwitchCase> cases) 表スイッチ命令を返します。