概述
1,classReader和classWriter区别
ClassReader
类(读取): 这个类可以直接由字节数组或由 class 文件间接的获得字节码数据,它能正确的分析字节码,构建出抽象的树在内存中表示字节码
ClassWriter类(生成):
生成字节码的工具类
---实现了ClassVisitor接口
---含有一个 toByteArray()
函数,返回生成的字节码的字节流
一,ClassVisitor实现类
ASMifierClassVisitor
CheckClassAdapter
ClassAdapter
ClassNode
ClassWriter
EmptyVisitor
RemappingClassAdapter
SAXClassAdapter
SerialVersionUIDAdder
StaticInitMerger
TraceClassVisitor
二,AnnotationVisitor实现类
AnnotationNode
ASMifierAnnotationVisitor
CheckAnnotationAdapter
EmptyVisitor
RemappingAnnotationAdapter
SAXAnnotationAdapter
TraceAnnotationVisitor
三,FieldVisitor实现类
ASMifierFieldVisitor
CheckFieldAdapter
EmptyVisitor
FieldNode
RemappingFieldAdapter
SAXFieldAdapter
TraceFieldVisitor
四,MethodVisitor实现类
AdviceAdapter
AnalyzerAdapter
ASMifierMethodVisitor
CheckMethodAdapter
CodeSizeEvaluator
EmptyVisitor
GeneratorAdapter
InstructionAdapter
JSRInlinerAdapter
LocalVariablesSorter
MethodAdapter
MethodNode
RemappingMethodAdapter
SAXCodeAdapter
TraceMethodVisitor
五,Opcodes实现类
AdviceAdapter
Analyzer
ASMContentHandler
BasicInterpreter
BasicVerifier
CodeSizeEvaluator
JSRInlinerAdapter
SimpleVerifier
SourceInterpreter
1. ClassVisitor接口 来访问Class中的每个元素
2.用户一般使用 ClassReader类 来读取Class的字节码时,
注:每read一个元素,ASM会调用指定的ClassVisitor接口的实现类 来访问这个元素(访问者模式)
最后
以上就是踏实花生为你收集整理的asm3.2 笔记的全部内容,希望文章能够帮你解决asm3.2 笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复