读书人

ASMSupport原理概略

发布时间: 2012-08-01 17:53:40 作者: rapoo

ASMSupport原理概要
ASMSupport是基于ASM实现的一套框架。 ASMSupport通过将ASM字节码操作抽象成对象记作Operator,然后将字节码操作所需要的信息封装到Operator中,并将Operator添加到执行队列Queue中,当方法所需要的所有操作都创建完毕则使用ASM框架将队列中的所有Operator执行。下面列举一个HelloWorld?例子:

public static void main(String[] args){    System.out.println("Hello World!");}


ASMSupport代码:
public static final GlobalVariable out = AClassFactory.getProductClass(System.class).getGlobalVariable("out");invoke(out, "println", getValue("Hello World")runReturn()


ASMSupport代码分析: 上面代码实际上创建了两个操作对象放入执行队列中。 一个是StaticMethodInvoker?。还有一个是Return对象 StaticMethodInvoker?存储了调用的对象即System.out,参数值即”Hello World”。当该对象被调用的时候则会调用ASM框架的方法,执行JVM的指令。 GETSTATIC System.out LDC “HelloWorld?” INVOKEIRTUAL PrintStream?.println(String): void



项目地址:http://code.google.com/p/amssupport/

读书人网 >开源软件

热点推荐