您现在的位置是:网站首页> 新闻快讯> 软件使用 新闻快讯

文本格式转换器(bin文件格式转换器)

小玉2023-07-05软件使用 232人已围观

简介在使用java.lang.instrument.Instrumentation接口进行字节码增强操作时,我们必要使用的方法便是:voidaddT

文本格式转换器(bin文件格式转换器)

最后更新:2023-07-05 01:45:45

推荐指数

在使用java.lang.instrument.Instrumentation接口进行字节码增强操作时,我们必要使用的方法便是:voidaddTransformer(ClassFileTransformertransformer,booleancanRetransform)通过此方法,我们可以为我们想要操作的类添加一个ClassFileTransFormer,顾名思义其为类文件转换器,其官方描述如下:Allfutureclassdefinitionswillbeseenbythetransformer,exceptdefinitionsofclassesuponwhichanyregisteredtransformerisdependent.Thetransformeriscalledwhenclassesareloaded,whentheyareredefined.andifcanRetransformistrue,whentheyareretransformed.简单来讲,在对一个类注册了该转换器后,未来该类的每一次redefine以及retransform,都会被该转换器检查到,并且执行该转换器的操作。由上述描述可以知道,我们想要做的字节码增强操作就是通过向JVM中添加转换器并且通过转换器将JVM中的类转换为我们想要的结果(Transformaclassbytransfomer.)流程如下:首先通过premain方法运行JavaAgent,此时在premain参数中我们可以获取到Instrumentation,第二步通过Instrumentation接口将实现的ClassFileTransfomer注册到JVM上,当JVM去加载类的时候,ClassFileTransfomer会获得类的字节数组,并对其进行transform后再返回给JVM,此后该类在Java程序中的表现就是转换之后的结果。

很赞哦! (0)

文章评论

来说两句吧...

验证码: