向 Java 类添加字段



查看使用CGLib,ASM,BCEL(方面)和Javassist在运行时向类添加字段...

只是为了让我直截了当,看起来这些字节码操纵器不会更新实际的类,而是允许用户只转储修改(如 CGLib 和 writeFile 方法)。 希望我能找到一个解决方案,(a)加载类(而不是使用BCEL进行输入流)和(b)更新类。

也许这很正常? 人们通常创建一个代理并传递代理吗?

我想做的是在将对象传递给查找具有特定注释的字段(不是属性)的框架之前添加一个字段(注意:不是通过 get/set 方法的属性)。 因此,"客户端"正在创建我的目标类,我想注入一个额外的字段。 使用 AOP 调用拦截我要在其中操作这些对象的服务层。

您可以使用入侵重新定义类。但是,一个常见的限制是您无法更改使用的字段。 这是因为创建对象后,您无法更改对象的内容(或向其添加内容)。

在您的情况下,您可以,

  • 按照您的建议创建一个代理,但是代理必须是接口。
  • 创建一个具有附加字段的子类
  • 在加载类之前添加字段。

相关内容

  • 没有找到相关文章

最新更新