Bytebuddy-在运行时实现接口

时间:2019-05-24 10:40:10

标签: java instrumentation java-bytecode-asm

是否可以重新定义现有的类?

让我说我上课

public class A {
     public void method() { ... }
}

然后是单个界面

public interface B {
     public void method();
}

在运行时,我想将两者混合在一起。

public class A implements B {
     @Override
     public void method() { ... }
}

以这种方式,每次通过new关键字初始化一个新的A对象时,它都会实现B接口,在另一个表达式中,以下表达式将始终为真

A a = new A();
if (A instanceof B) {
   //always true
}

使用bytebuddy或ASM可能吗?还是类似的东西在Java中根本不可能?

0 个答案:

没有答案