首页 > 解决方案 > 可以使 ByteBuddy 静态引用持久化吗?

问题描述

ByteBuddy 提供了定义一个类的特性,该类具有对另一个对象的引用(参见方法MethodCall#withReference()。这是非常好的和方便的。我的问题是围绕这个参考的性质。

我不好意思这么说,但我意识到我一直在假设存储在这个静态字段中的引用将是持久的。也就是说,如果我设置 ByteBuddy 以便它使用可预测的类名,然后稍后从不同的 VM 加载它们,我一直假设withReference调用中传递的任何内容都将被……序列化?存储?某种程度上来说。它似乎不是。

(我猜测(还没有深入研究)LoadedTypeInitializer可能会调用 a ,甚至可能通过反射来使用对内存中已经存在的一些其他字节码的简单引用来填充该字段,即我猜测引用是一个简单的指针,在 VM 退出后悬空。)

我的问题是:ByteBuddy API 非常庞大,所以我经常发现我遗漏了一些东西——<em>ByteBuddy 中是否有一个工具可以让我持久地存储对另一个对象的引用?还是我必须自己使用序列化或类似的东西来滚动它?

标签: byte-buddy

解决方案


啊; 我发现了ByteBuddy 对动态常量的支持,这可能给了我我正在寻找的大部分内容。


推荐阅读