gpt4 book ai didi

java - AspectJ:避免执行枚举

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:18 25 4
gpt4 key购买 nike

我有一个用以下注释的方法:

@Around("execution(* it.foo.bar.Flow.*(..))")
public Object profile(ProceedingJoinPoint pjp) {...}

Flow 类 中,我在枚举类型 上有一个简单的switch。当我在那条线上运行时,上面的 profile 方法 被调用。这是我拥有的 pjp 对象:

execution(int[] it.foo.bar.Flow.$SWITCH_TABLE$it$foo$bar$dataobjects$RequestType())

RequestType枚举。我想避免在遇到 enum 时调用 profile 方法,因此我尝试了几个执行表达式,但它不起作用,甚至除了上面的表达式之外还使用了以下表达式:

&& !(execution(int[]     it.foo.bar.Flow.$SWITCH_TABLE$it$foo$bar$dataobjects$RequestType()))

有可能实现我想要做的事情吗?

最佳答案

不可能以比方法更细的粒度级别来编织类。您可以将处理 RequestType enum 的功能提取到一个单独的方法中,并调整切入点表达式以避免这种情况:

@Around("execution(* it.foo.bar.Flow.*(..)) && !execution(* it.foo.bar.Flow.handleRequestType(..))")

关于java - AspectJ:避免执行枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858386/

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