当我使用java.lang.instrument.Instrumentation# redefinecclasses()



我使用java.lang.instrument.Instrumentation#redefineClasses()来重新定义现有的类。有时,我需要重新定义几个类。

如果我一个一个地重新定义类,我将知道哪些是成功的,哪些是失败的。

但它是更好地把类重新定义在一个数组一起获得更多的正确性?

如果我一个一个地重新定义类,我将知道哪个是成功,哪个是失败失败了。

但是把重新定义的类放在一个数组中来get是不是更好呢更多的正确性?

我不明白你说的更多的正确性是什么意思!但是,无论如何,根据我的理解,在一个类与另一个类相互依赖的情况下,使用类的集合(数组)可能特别有用。因此,在这种情况下,您可以通过在此方法中传递它们来重新定义这两个类。


同时,Java接口检测文档说:

此方法用于替换没有的类的定义引用现有的类文件字节,就像在从源代码重新编译以进行"修复并继续"调试。

这个方法在一个集合上操作,以便允许同时对多个类进行相互依赖的更改(重新定义)类A可以要求重新定义类B)

但是,请记住:

如果此方法抛出异常,则表示没有重新定义类。

与单独传递每个类相比,批量检测类的性能要高得多。

JVM需要停止应用程序来应用重新定义,这是一个相当昂贵的操作,因此值得分组。

同时,分组允许类之间相互依赖的变化。

相关内容

  • 没有找到相关文章

最新更新