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使用此字节码的字节码.
我发现的所有字节码工程库都太低级了,所以我想知道是否有更高级别的库可以让我处理抽象对象,如函数等.
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |