Javassist如何详细运用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4127个文字,预计阅读时间需要17分钟。
Java字节码以二进制形式存储在.class文件中,每个.class文件包含一个Java类或接口。Javaassist是一个用于处理Java字节码的类库。它可以在已编译好的类中添加新的方法。
概述
Java字节码以二进制的形式存储在.class文件中,每一个.class文件包含一个Java类或接口。Javaassist就是一个用来处理Java字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以通过完全手动的方式生成一个新的类对象。
Maven依赖方式:
<dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.27.0-GA</version> </dependency>
Gradle依赖方式:
implementation 'org.javassist:javassist:3.27.0-GA'
ClassPool
ClassPool是CtClass对象的容器,它按需读取类文件来构造CtClass对象,并且保存CtClass对象以便以后使用。
从实现的角度来看,ClassPool 是一个存储 CtClass 的 Hash 表,类的名称作为 Hash 表的 key。ClassPool 的 get() 函数用于从 Hash 表中查找 key 对应的 CtClass 对象。
本文共计4127个文字,预计阅读时间需要17分钟。
Java字节码以二进制形式存储在.class文件中,每个.class文件包含一个Java类或接口。Javaassist是一个用于处理Java字节码的类库。它可以在已编译好的类中添加新的方法。
概述
Java字节码以二进制的形式存储在.class文件中,每一个.class文件包含一个Java类或接口。Javaassist就是一个用来处理Java字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以通过完全手动的方式生成一个新的类对象。
Maven依赖方式:
<dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.27.0-GA</version> </dependency>
Gradle依赖方式:
implementation 'org.javassist:javassist:3.27.0-GA'
ClassPool
ClassPool是CtClass对象的容器,它按需读取类文件来构造CtClass对象,并且保存CtClass对象以便以后使用。
从实现的角度来看,ClassPool 是一个存储 CtClass 的 Hash 表,类的名称作为 Hash 表的 key。ClassPool 的 get() 函数用于从 Hash 表中查找 key 对应的 CtClass 对象。

