インタフェース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(Consumer)は、コード・モデルを構築する主な方法です。 MethodBuilder.transformCode(CodeModel, CodeTransform)およびCodeBuilder.transforming(CodeTransform, Consumer)では、元のコード要素を選択して処理し、結果をコード・ビルダーに指示することで、新しいCode属性を作成できます。

Code属性は属性を保持しますが、通常はメンバー要素ではありませんが、PseudoInstructionに分解され、ClassFile.DeadLabelsOptionClassFile.DebugElementsOptionおよびClassFile.LineNumbersOptionに従ってアクセスできます。 StackMapTableAttributeには、コード本文から導出プロパティとみなされるため、「明示的な属性読み取り」を介してのみアクセスできます。

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

    • parent

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

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