Javassist Java bytecode engineering toolkit since 1999
Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides two levels of API: source level and bytecode level. If the users use the source-level API, they can edit a class file without knowledge of the specifications of the Java bytecode. The whole API is designed with only the vocabulary of the Java language. You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors.
ProxyFactory
既可以代理类,也可以代理接口
MethodHandler
1 |
|
invoke
Object self:生成的代理类的实例
Method thisMethod:被代理类或接口的方法
Method proceed:生成的代理类的方法,可能为null(抽象方法或代理接口时)
Object[] args:方法调用参数
1 |
|
1 |
|