首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用byte-buddy重新定义类

使用byte-buddy重新定义类
EN

Stack Overflow用户
提问于 2017-03-14 21:26:03
回答 1查看 2.1K关注 0票数 1

我想重新定义已在现有框架中定义的Source类。我想用我的增强类自动替换Source类的原始实例。我不能访问创建Source对象的代码,所以类替换必须在幕后自动执行。有没有可能使用byte-buddy来做这件事呢?

代码语言:javascript
复制
    ByteBuddyAgent.install();
    Source source = new ByteBuddy()
            .subclass(Source.class)
            .method(named("hello")).intercept(MethodDelegation.to(Target.class))
            .defineMethod("myNewMethod", void.class).intercept(MethodDelegation.to(Target.class))
            .make()
            .load(Source.class.getClassLoader(),
                    ClassReloadingStrategy.fromInstalledAgent())
            .getLoaded()
            .newInstance();
EN

回答 1

Stack Overflow用户

发布于 2017-03-15 15:14:21

可以使用Byte Buddy重新定义类。为此,您将使用ByteBuddy::redefineByteBuddy::rebase方法,而不是子类化。使用这些特性的最规范方法是定义一个Java Agent,用于您可以使用AgentBuilder的内容。

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

https://stackoverflow.com/questions/42787286

复制
相关文章

相似问题

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