gpt4 book ai didi

Javassist 捕获特定语句的局部变量值

转载 作者:行者123 更新时间:2023-11-30 06:53:34 26 4
gpt4 key购买 nike

我试图捕获分支和循环语句的条件表达式中涉及的变量值,例如:

if (a + b < c - 5) { // here, capture value of a, b and c
// if body
}

for (int i = 0; i / x < 4 ; i++){ // here, capture value of i and x on exit of loop
// for body
}

Javassist 是否为 if、switch、for 和 while 语句提供 ExpressionEditor,就像为 FieldAccess、MethodCall、Handler 等提供的那样?

还有其他方法可以解决这个问题吗? (我有兴趣在运行时执行此操作)

最佳答案

我真的不认为这是可能的,使用 Javassist 你无法深入访问字节码。

您的需求太细粒度,并且库不支持它,正如您从 this 中看到的那样在文档中,您可以访问作为方法参数或方法返回的所有变量,但无法找到有关所有其他变量的任何信息。

如果我可以建议你应该看看ASM 。我不是这方面的专家,但据我所知,根据 this文档应该提供更深入的字节码 View 。

关于Javassist 捕获特定语句的局部变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42244726/

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