首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ASM指南通译-3

2012-10-07 
ASM指南翻译-32.1接口和组件?2.2.1表现Presentation?????????????????? returnnull???????? }???????? pu

ASM指南翻译-3

2.1接口和组件

?

2.2.1表现Presentation



?????????????????? returnnull;

???????? }

???????? publicvoid visitEnd() {

?????????????????? System.out.println("}");

???????? }

}

第二步,将ClassPrinter和ClassReader结合起来,这样,ClassReader产生的事件就可以被我们的ClassPrinter消费了:

ClassPrinter cp = new ClassPrinter();

ClassReader cr = newClassReader("java.lang.Runnable");

cr.accept(cp, 0);

?

上面的第二行代码创建了一个ClassReader来解析Runnable类。最后一行代码中的accept方法解析Runnable类的字节码,并且调用cp上对应的方法。结果如下:

java/lang/Runnable extends java/lang/Object{

run()V

}

?

注意,这里有多种方式来构造一个ClassReader的实例。可以通过类名,例如上面的例子,或者通过类的字节数组。或者类的输入流。类的输入流可以通过ClassLoader的getResourceAdStream方法:

cl.getResourceAsStream(classname.replace(’.’,’/’) + ".class");

热点排行