我使用 Javassist 创建一个类。在测试套件中,当第二个测试尝试创建同一个类时,它会失败,pool.makeClass( ... )
因为该类被冻结(即已经通过toClass()
.
有什么办法可以克服呢?理想情况下,第一个测试应该以某种方式删除类 - 可能从类加载器中卸载 - 但正如我在 JLS中读到的,卸载操作不可靠。
因此,也许解决方法是检查类创建代码是否存在,如果存在,则defrost()
删除所有成员等,然后重新创建它。
还有其他想法吗?
还是有一些可靠的方法可以通过 Javassist 删除该类?