0

asm ライブラリを使用して Java でコンパイラを構築しています。これまでのところ、整数のみを出力に出力できます。

文字列でも同じことをしたい。何か案は?

4

2 に答える 2

1

生のバイトコードを自分で発行することが厳密に必要ですか? そうでない場合は、宣言式ツリーを使用してコードを作成し、式をバイトコードにコンパイルできる API (こちらを参照) を用意しています (ランタイム呼び出しのコールバックとして、または生成されたクラスのメソッド本体として)。

この API を使用してコードを作成するプロセスは、ASM を使用して生の命令を発行するよりもはるかに自然で冗長ではありません。たとえば、次のようになります。

call(
    field(null, Types.System.getField("out")),
    "println",
    constant("twenty-two")
)
于 2013-06-07T16:44:42.880 に答える