在运行时更改类的超类

时间:2015-02-10 12:05:00

标签: java inheritance bytecode byte-buddy

我可以通过继承抽象类来使用Byte Buddy在运行时增强类吗?

@AggregateRoot
public class Organization {
}

我应该能够拦截Organization的所有实例,并通过继承下面的抽象类来增强它。

public abstract class BaseAggregateRoot {
  public void notify() {
    //Notify domain events
  }
}

1 个答案:

答案 0 :(得分:0)

那么你想要做的是在运行时动态更改给定类的超类?目前,这在Byte Buddy中是不可能的。相反,当您使用Java 8时,可以使用定义的默认方法添加接口。这是一个选项吗?

您还可以做的是在运行时继承BaseAggregateRoot类,命名类Organization并在其上添加注释。

但我会将此视为Byte Buddy的未来功能。