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/