如何使用 Javassist 获取方法体?
How do I get the method body using Javassist?
可以使用 CtMethod.setBody("..")
设置方法体,但我没有找到任何 API 来获取字符串格式的方法体。
这是不可能的。
Javassist 不是反编译器。 class 文件中的方法以 Java 字节代码表示。 Javassist 知道如何将 Java 源代码翻译成字节码,但反之则不然。此外,Java 字节代码甚至可能无法表达为 Java 源代码,例如当使用非 Java JVM 语言编写时。
可以使用 CtMethod.setBody("..")
设置方法体,但我没有找到任何 API 来获取字符串格式的方法体。
这是不可能的。
Javassist 不是反编译器。 class 文件中的方法以 Java 字节代码表示。 Javassist 知道如何将 Java 源代码翻译成字节码,但反之则不然。此外,Java 字节代码甚至可能无法表达为 Java 源代码,例如当使用非 Java JVM 语言编写时。