インタフェース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.DeadLabelsOptionClassFile.DebugElementsOptionおよびClassFile.LineNumbersOptionに従ってアクセスできます。 StackMapTableAttributeには、コード本文から導出プロパティとみなされるため、「明示的な属性読み取り」を介してのみアクセスできます。

Java Virtual Machine仕様を参照してください:
4.7.3 Code属性
導入されたバージョン:
24
関連項目:
  • メソッドの詳細

    • parent

      わかっている場合は、囲みメソッドを返します。
      戻り値:
      包含メソッド(既知の場合)
    • exceptionHandlers

      List<ExceptionCatch> exceptionHandlers()
      メソッドの例外表を返します。 例外表は、ストリーミング・ビューのExceptionCatch要素によってもモデル化されます。
      戻り値:
      メソッドの例外表