43 - ASM之asm-util和asm-commons

2022-02-23  本文已影响0人  舍是境界

asm-util

在asm-util.jar当中,主要介绍CheckClassAdapter和TraceClassVisitor类。在TraceClassVisitor类当中,会涉及到Printer、ASMifier和Textifier类。

ASM Util

asm-commons

在asm-commons.jar当中,包括的类比较多,我们可以这些类可以分成两组,一组是ClassVisitor的子类,另一组是MethodVisitor的子类。

ASM Common示意图

那么,asm-util.jar与asm-commons.jar有什么区别呢?在asm-util.jar里,它提供的是通用性的功能,没有特别明确的应用场景;而在asm-commons.jar里,它提供的功能,都是为解决某一种特定场景中出现的问题而提出的解决思路。

编程建议:在编写ASM代码的时候,如果写了一个类,它继承自ClassVisitor,那么就命名成XxxVisitor;如果写了一个类,它继承自MethodVisitor,那么就命名成XxxAdapter。通过类的名字,我就可以区分出哪些类是继承自ClassVisitor,哪些类是继承自MethodVisitor。

其实,将MethodVisitor类的子类命名成XxxAdapter就是参考了GeneratorAdapter、AdviceAdapter、AnalyzerAdapter和InstructionAdapter类的名字。但是,CheckClassAdapter类是个例外,它是继承自ClassVisitor类。

小结

本文对asm-util.jar和asm-commons.jar进行介绍,内容总结如下:

上一篇 下一篇

猜你喜欢

热点阅读