gpt4 book ai didi

aspectj - 在 ASPECT 中的方法中访问业务方法的局部变量

转载 作者:行者123 更新时间:2023-12-04 09:12:22 25 4
gpt4 key购买 nike

我想从业务类中的方法访问局部变量,在方面类中的方法中。例如

class BusinessClass {
public void simpleTest() {
...
String localString = new String( "test" );
...
}
}

MyAspect {
log() {
// I WANT TO ACCESS THE VALUE OF LOCALSTRING HERE
}
}

我想在 MyAspect 的 log 方法中访问 localString 的值。请让我知道是否有任何方法可以使用 Spring/AspectJ 完成此操作。另外,有没有一种方法可以在不更改 simpleTest 方法签名的情况下完成?

提前非常感谢!

最佳答案

据我了解,方面旨在适用于许多方法(由切入点定义)。因此,他们看不到方法的内部结构:只看到方法的参数和结果。这意味着您无法直接完成您想要的操作,但您可以尝试将您的方法重构为两部分,其中一个采用 localString作为参数,另一个应用默认值。然后,这将为您提供一个方便的连接点。 (AspectJ reference lists join points 和对局部变量的引用不是其中之一。)如果您将“内部”方法设为私有(private)或包私有(private),您甚至不会更改该方法的普遍理解签名(因为外部代码将无法依赖于引入的方法)。

关于aspectj - 在 ASPECT 中的方法中访问业务方法的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522107/

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