任何高级字节码编辑器?

Jus*_*s12 2 java reflection scala bytecode

假设我在Scala中有以下内容

object Foo {
  var functions: List[String => String] = Nil // can be any type to any type.
  def addFunc(f:String => String) = functions = f :: functions
}
Run Code Online (Sandbox Code Playgroud)

在运行时,我会Foo添加一些函数.我现在想构建一个新的.class文件,在Scala中实现类似的跟随:

object MyObject { 
  def process1(s:String) = // call Foo.functions(1)
}
Run Code Online (Sandbox Code Playgroud)

然后我想保存MyObject字节码,即使Foo不存在也可以在以后执行.

以上只是展示我想做的事情的一个例子.我得到了名字MyObject,process1我必须生成一个可执行文件MyObject.class.MyObject不需要源(它可能是Java源代码).

因此,在高层次上,我们需要获取内存"快照" Foo.function(1),将该快照转换为字节码进行存储,并生成MyObject使用此字节码的字节码.

我发现的所有字节码工程库都太低级了,所以我想知道是否有更高级别的库可以让我处理抽象对象,如函数等.

Rya*_*art 6

你看过ASM的Tree模型了吗?我之前只使用过Event模型,但树听起来就像你正在寻找的那样.您可以在ASM用户指南的 1.2.2节中找到概述(PDF - 我不认为有HTML版本,或者我将其链接).