首页
随机
最近更改
特殊页面
社群首页
参数设置
关于WHY42
免责声明
WHY42
搜索
用户菜单
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁ASM introduction”︁的源代码
←
ASM introduction
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
= Event based API vs Tree API = * The event based API is faster and requires less memory than the object based API, since there is no need to create and store in memory a tree of objects representing the class (the same difference also exists between SAX and DOM). * However implementing class transformations can be more difficult with the event based API, since only one element of the class is available at any given time (the element that corresponds to the current event), while the whole class is available in memory with the object based API. = API structure = * <syntaxhighlight lang="java" inline>org.objectweb.asm</syntaxhighlight> * <syntaxhighlight lang="java" inline>org.objectweb.asm.signature</syntaxhighlight>: packages define the event based API and provide the class parser and writer com- ponents. They are contained in the asm.jar archive. * <syntaxhighlight lang="java" inline>org.objectweb.asm.util</syntaxhighlight>:provides various tools based on the core API that can be used during the development and debuging of ASM applications. * <syntaxhighlight lang="java" inline>org.objectweb.asm.commons</syntaxhighlight>:provides several useful pre- defined class transformers, mostly based on the core API. It is contained in the asm-commons.jar archive. * <syntaxhighlight lang="java" inline>org.objectweb.asm.tree</syntaxhighlight>:defines the object based API, and provides tools to convert between the event based and the object based representations. * <syntaxhighlight lang="java" inline>org.objectweb.asm.tree.analysis</syntaxhighlight>:provides a class anal- ysis framework and several predefined class analyzers, based on the tree API. It is contained in the asm-analysis.jar archive. = Core API= <syntaxhighlight lang="java"> public static ClassWriter createClassWriter(String name) { ClassWriter classWriter = new ClassWriter(0); classWriter.visit(V1_8, ACC_PUBLIC + ACC_FINAL, name, null, "java/lang/Object", null); return classWriter; } byte[] b = classWriter.toByteArray(); </syntaxhighlight> = Tree API= <syntaxhighlight lang="java"> public static ClassNode createClass(String name) { ClassNode classNode = new ClassNode(); classNode.version = V1_8; classNode.access = ACC_PUBLIC + ACC_FINAL; classNode.name = name; classNode.superName = "java/lang/Object"; return classNode; } </syntaxhighlight> [[Category:JVM]] [[Category:ASM]]
返回
ASM introduction
。