ByteBuddy:修改已加载类的架构的解决方法

问题描述 投票:0回答:1

问题:我们使用ByteBuddy生成类,将其加载,并且一时需要添加/删除字段,而无需重新启动应用程序。

如果我理解正确,在Java中将无法修改已经加载到类加载器中的类的架构(添加字段/方法)。

我的问题:作为一种解决方法,当发生这样的冲突时,创建一个新的类加载器是否可能/合理-将所有生成的类加载到新的类加载器中并关闭旧的类加载器?

谢谢。

byte-buddy
1个回答
0
投票

[OpenJDK的VM版本支持这种转换,Dynamic Code Evolution VM

对于常规VM,您可以在新的类加载器中加载类。但是,在这种情况下,以前的实例都不会是此更改后的类的实例。您将需要重新创建所有实例。如果这对您来说可行,则可以选择。

© www.soinside.com 2019 - 2024. All rights reserved.