gpt4 book ai didi

java - 如何向由许多子类实现的接口(interface)方法添加断点或自定义代码?

转载 作者:行者123 更新时间:2023-12-03 18:41:52 24 4
gpt4 key购买 nike

我正在处理具有许多子类(称它们为 AB)的源代码,它们实现了一个通用的interface Visitor,带有方法 visitProgram。当任何子类遇到此方法(即 A.visitProgramB.visitProgram)时,有什么方法可以中断吗?替代语言解决方案会很好,但我无法重写现有源代码。

最佳答案

既然你在调试,我假设你可以添加一些新代码并构建整个东西。

也就是说,您可以使用面向方面编程 (AOP) 来获取捕获 visitProgram 执行的切入点,理论上您可以将断点放在切入点中。您可以将 AOP 视为一种横向切入程序的技术(与构建“垂直”结构的 OOP 相反)。

在这种情况下,您希望在每次运行 visitProgram(Visitor 接口(interface)的任何实例化)之前执行一些操作。这是一个横向削减,因此 AOP 应该适合您的需要。

基本上,您将拥有一个函数,您可以在其中设置一个断点,以便任何时候 visitProgram 被调用,您的程序将在它执行之前停止。

我建议使用 Spring AOP ,它非常简单,只需按照手册中的设置说明进行操作即可。您的切入点应如下所示:

@Aspect
public class BeforeVisitProgram {

@Before("visitProgram()")
public void doStuff() {
// break in here
}

}

关于java - 如何向由许多子类实现的接口(interface)方法添加断点或自定义代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com