美文网首页
Javaassist

Javaassist

作者: 阿术和薇薇安 | 来源:发表于2021-07-19 17:09 被阅读0次

在Javassist中,进行类表述的基本单元是CtClass(即“编译时的类”,compile time class)。组成程序的这些类会存储在一个ClassPool中,它本质上就是CtClass实例的一个容器。

ClassPool的实现使用了一个HashMap,其中key是类的名称,而value是对应的CtClass对象。

正常的Java类都会包含域、构造器以及方法。在CtClass中,分别与之对应的是CtField、CtConstructor和CtMethod。要定位某个CtClass,我们可以根据名称从ClassPool中获取,然后通过CtClass得到任意的方法,并做出我们的修改。如下所示:

image

Javassist提供的javassist.util.HotSwapper(3.1之前则是javassist.tools.HotSwapper,BTrace也是使用HotSwapper机制)类能够更加方便的动态重新加载类

虽然Javassist能够提供动态重新加载类的功能,不过由于它要求启用JPDA

https://www.cnblogs.com/zhjh256/p/6286198.html

相关文章

网友评论

      本文标题:Javaassist

      本文链接:https://www.haomeiwen.com/subject/avjhmltx.html