我使用java.lang.instrument.Instrumentation#redefineClasses()
来重新定义现有的类。有时,我需要重新定义几个类。
如果我一个一个地重新定义类,我将知道哪些是成功的,哪些是失败的。
但它是更好地把类重新定义在一个数组一起获得更多的正确性?
如果我一个一个地重新定义类,我将知道哪个是成功,哪个是失败失败了。
。
但是把重新定义的类放在一个数组中来get是不是更好呢更多的正确性?
我不明白你说的更多的正确性是什么意思!但是,无论如何,根据我的理解,在一个类与另一个类相互依赖的情况下,使用类的集合(数组)可能特别有用。因此,在这种情况下,您可以通过在此方法中传递它们来重新定义这两个类。
同时,Java接口检测文档说:
此方法用于替换没有的类的定义引用现有的类文件字节,就像在从源代码重新编译以进行"修复并继续"调试。
…
这个方法在一个集合上操作,以便允许同时对多个类进行相互依赖的更改(重新定义)类A可以要求重新定义类B)
但是,请记住:
如果此方法抛出异常,则表示没有重新定义类。
与单独传递每个类相比,批量检测类的性能要高得多。
JVM需要停止应用程序来应用重新定义,这是一个相当昂贵的操作,因此值得分组。
同时,分组允许类之间相互依赖的变化。