gpt4 book ai didi

java - 跟踪调用另一个类时使用变量的位置

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

这有点开箱即用,但我需要跟踪方法的输入并跟踪它们在其他类中的使用位置。鉴于代码可以重构和更改并且我想确保映射保持其准确性,有什么好的方法可以做到这一点吗?

// doSomething is under my control
@Endpoint("testEndpoint")
public void doSomething(String name, int age, String surname) {

String fullName = name + " " + surname;

// SendRequest is generated code (not under my control)
SendRequest sr = new SendRequest();
sr.setFullName(fullName);
sr.setUserAge(age)
this.sender.send(sr);

}

所以他们的输出可能是

testEndpoint
INPUT <> OUTPUT
---------------
name -> fullName
age -> userAge
surname -> fullName

我在运行时和执行方法之前需要这些信息。我当前的解决方案的灵感来自 Dozer并使用反射和自定义带注释的转换类,我可以在运行时读取它来收集依赖项并提取此信息 - 实际上将类型安全语言转变为类型不安全语言。

只是想知道是否有更好的解决方案或一些库可以做到这一点。

最佳答案

使用 AspectJ 怎么样? ?

您可以定义一个与您想要捕获参数的方法相匹配的切入点,然后定义一个实际捕获、存储、跟踪(无论参数值如何)的建议。

public aspect ExampleAspect {

pointcut doSomething() : call(public void doSomething(String,int,String));

before(): doSomething(){
System.out.println("INPUT <> OUTPUT");
System.out.println("---------------");
System.out.println("name -> "+ this.JoinPoint.getArgs[0]);
System.out.println("age -> "+ this.JoinPoint.getArgs[1]);
System.out.println("surname -> "+ this.JoinPoint.getArgs[2]);
}

}

关于java - 跟踪调用另一个类时使用变量的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37833144/

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