我正在探索Byte Buddy是否适合我使用。我正在看这个answer谈论如何与Byte Buddy,一个人可以拿一个类Foo
加载类加载器A
,重命名为Bar
并重新定义在另一个类加载器B
。这是令人难以置信的。我的问题是:
Foo
上创建一个从A
创建的对象并转换为来自类加载器Bar
的B
对象?我现在想到的解决方案是基本上从Foo
序列化对象,然后编辑序列化字节以重命名类的名称。如果我能用Byte Buddy安全地做到这一点会很好。另一种解决方案是使用Transloader。非常感谢。
您始终可以在不使用Java代理的情况下在另一个类加载器中加载类。至于翻译类,将一个类名的符号替换为anther应该不是问题,但是你需要注意序列版本的UID,其中类的名称可能是其中的一部分。 Byte Buddy是一个代码生成库,不会为此类操作添加任何额外帮助。