おそらく、メソッド本体全体が処理され、いくつかの非バイトコード ノード ( 、 など) とともに一連のInsnList
が含まれる に変換されます。XXXNode クラスの javadoc には通常、いくつかの有用な情報 (たとえば、この XXXNode にマップされるオペコード) が含まれていますが、マッピングは完全ではないようです。AbstractInsnNode
FrameNode
LineNumberNode
WIDE
バイトコードはどうなりますか? 次の命令に自動的に折りたたまれますか? おそらくそうですが、それを明示的に述べているものは何も見つかりません- すべての Ldc 命令 (
LDC
、LDC_2
、LDC_2W
) はすべて LdcInsnNodes にマップされますか? おそらくそうですが、ドキュメントには記載されていません
一般に、Java バイトコード -> ASM クラスの便利なマッピングはありますか? 私は Java バイトコード シーケンス (つまり、メソッド本体) でいくつかの処理を行っており、受信する可能性のあるすべてのバイトコード (約 200 個程度) が、適切に処理している ASM データ構造にマップされていることを確認したいと考えています。