AspectJ 环绕调用,包括方法调用后的方法体

AspectJ Around call, including method body after method call

所以我试图在 Java AspectJ

中实现类似于 kotlin 协程的东西

目前我正在尝试在调用 Waitable.waitFor() 的方法时拦截方法 Waitable.waitFor() 之后方法体中的所有内容都应该安排

但是在我现在的代码中,它只拦截方法调用,并没有包含之后的方法体

所以我想知道是不是我的切入点表达式代码错了?或者有什么更好的方法可以做到这一点?

@Around("call(* org.imanity.framework.wait.Waitable.waitFor(..))")
public Object waitCall(ProceedingJoinPoint joinPoint) throws Throwable {
    Scheduler.runAfter(() -> joinPoint.proceed(), Long.parseLong(joinPoint.getArgs()[0]));
}

调用后无法捕获方法体

想象一下你能做到。

  1. 如何使用循环?
  2. 局部变量将存储在哪里?

PS:有一个项目 Loom 旨在向 java 添加协程。

PS:我们必须竭尽全力阻止那个项目,这是一个巨大的错误。