首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个java代理代理同一个类

多个java代理代理同一个类
EN

Stack Overflow用户
提问于 2021-03-08 09:35:28
回答 1查看 31关注 0票数 0

如果我使用一系列java代理来为相同的类进行字节码增强。后者的输入会是前者的输出吗?例如,智能体A向方法M添加两个局部变量,智能体B的输入将包含方法M中相同的两个局部变量?

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 13:19:08

可以,如果代理B的转换器在代理A的转换后被调用:

当有多个转换器时,通过链接transform调用来组成转换。也就是说,一次调用transform返回的字节数组将成为下一次调用的输入(通过classfileBuffer参数)。

(Source)

这里还指定了调用转换器的顺序:

转换按以下顺序应用:

不支持

  • Retransformation的transformers
  • Retransformation不支持本机transformers
  • Retransformation支持transformers
  • Retransformation的本机transformers

对于重新转换,不调用不支持重新转换的转换器,而是重用前一个转换的结果。在所有其他情况下,将调用此方法。在这些分组中,转换器按照注册的顺序被调用。Java转换器由 Virtual Machine Interface中的ClassFileLoadHook事件提供。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66523309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档