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