インタフェースCodeModel
- すべてのスーパー・インタフェース:
AttributedElement
,ClassFileElement
,CompoundElement<CodeElement>
,Iterable<CodeElement>
,MethodElement
- 既知のすべてのサブインタフェース:
CodeAttribute
public sealed interface CodeModel extends CompoundElement<CodeElement>, AttributedElement, MethodElement permits CodeAttribute (not exhaustive)
メソッド(
Code
属性)の本文をモデル化します。 Code
属性は、Instruction
にアクセスする唯一の方法であるCodeElement
sの「組成」とみなされます。コード・モデルの要素の順序は重要です。
CodeModel
は、MethodModel.code()
、またはメソッドのメンバー要素のトラバースから取得されます。
MethodBuilder.withCode(java.util.function.Consumer<? super java.lang.classfile.CodeBuilder>)
は、コード・モデルを構築する主な方法です。 MethodBuilder.transformCode(java.lang.classfile.CodeModel, java.lang.classfile.CodeTransform)
およびCodeBuilder.transforming(java.lang.classfile.CodeTransform, java.util.function.Consumer<java.lang.classfile.CodeBuilder>)
では、元のコード要素を選択的に処理し、結果をコード・ビルダーに指示することで、新しいCode
属性を作成できます。
Code
属性は属性を保持しますが、通常はメンバー要素ではありませんが、PseudoInstruction
に分解され、ClassFile.DeadLabelsOption
、ClassFile.DebugElementsOption
およびClassFile.LineNumbersOption
に従ってアクセスできます。 StackMapTableAttribute
には、コード本文から導出プロパティとみなされるため、「明示的な属性読み取り」を介してのみアクセスできます。
- Java Virtual Machine仕様を参照してください:
-
4.7.3
Code
属性 - 導入されたバージョン:
- 24
- 関連項目:
-
メソッドのサマリー
インタフェースjava.lang.classfile.AttributedElementで宣言されたメソッド
attributes, findAttribute, findAttributes
インタフェースjava.lang.classfile.CompoundElementで宣言されたメソッド
elementList, elementStream, forEach, iterator, toDebugString
インタフェースjava.lang.Iterableで宣言されたメソッド
spliterator
-
メソッドの詳細
-
parent
-
exceptionHandlers
List<ExceptionCatch> exceptionHandlers()メソッドの例外表を返します。 例外表は、ストリーミング・ビューのExceptionCatch
要素によってもモデル化されます。- 戻り値:
- メソッドの例外表
-