Java 在运行时替换类中的方法调用
问题Java 在运行时替换类中的方法调用,java,fitnesse,Java,Fitnesse,问题 我正在使用fitnesse运行一些自动测试。有一个名为TableTable的类,如果得到增强,它将允许我做一些很酷的事情。我需要做的是更改此类的方法appendInstructions()的功能 因为fitnesse显式地查找TableTable类,所以我不能简单地创建带有所需增强功能的TableTable的子类-我不能让fitnesse查找并使用我的自定义子类 我当前的解决方案 我采用的临时解决方案是借用TableTable的源代码,将其添加到fitnesse的jar中的同一个包下的源代
我正在使用fitnesse运行一些自动测试。有一个名为TableTable的类,如果得到增强,它将允许我做一些很酷的事情。我需要做的是更改此类的方法
appendInstructions()
的功能
因为fitnesse显式地查找TableTable类,所以我不能简单地创建带有所需增强功能的TableTable的子类-我不能让fitnesse查找并使用我的自定义子类
我当前的解决方案我采用的临时解决方案是借用TableTable的源代码,将其添加到fitnesse的jar中的同一个包下的源代码树中,并更改其代码以满足我的需要。我的代码的类文件在类路径中显示在fitnesse的jar之前,因此我的更改会被拾取 我想做的事
我不想在fitnesse的jar中完全隐藏TableTable类,我只想在运行时重写该类的一个方法。任何代码生成库(如cglib)都能帮助我在运行时重写类并帮助我实现这一点吗?听起来您应该看看。根据您需要更改的范围,您可以使用。有一个关于使用Javassist截取/替换方法的教程。如果您能解释您的增强功能并与社区共享,那就太好了。也许有一种方法可以使你所寻找的产品成为标准产品或附加产品。