如何检查对象是否由字节伙伴创建?

时间:2017-03-17 08:44:01

标签: java byte-buddy

我使用以下代码

创建一个Source对象实例
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())
        .getLoaded()
        .newInstance();

如果由ByteBuddy创建,我如何分析 Source 对象?它是实现的任何标记接口还是这样的?生成的对象的实际类是类似源$ ByteBuddy $ HFuwCkIQ 谢谢!

1 个答案:

答案 0 :(得分:4)

Byte Buddy不会在其生成的代码中留下任何痕迹,除非您将这些跟踪放入生成的类中。默认情况下,在创建子类时,Byte Buddy的默认命名策略会将$ByteBuddy$添加到子类的名称中,但此配置可能会更改。标记类的最简单方法可能是为您生成的任何类实现接口。