0

我正在使用 asm 库在 Java 中构建编译器。到目前为止,我只能打印到输出整数。

我想对字符串做同样的事情。有任何想法吗?

4

2 回答 2

1

您是否有必要自己发出原始字节码?如果没有,我有一个 API(参见此处),它允许您使用声明性表达式树编写代码,然后将表达式编译为字节码(作为运行时调用的回调,或作为生成类的方法体)。

与使用 ASM 发出原始指令相比,使用此 API 编写代码的过程更加自然且简洁,例如:

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

我建议您用 Java 编写代码,编译它并 ASMifier 代码以查看它生成的内容。

如果您使用 IntelliJ 和 Eclipse,您可以使用 ASM 字节码查看器一步完成。即,您可以在一个窗口中拥有示例 Java 代码,ASM 代码将在它旁边生成它。

请参阅这两个程序中的 ASM 选项卡。这将帮助您确定要编写什么 ASM 代码来做某事。

在此处输入图像描述

Eclipse ASM 插件

于 2013-06-07T06:01:37.250 回答