java - 如何访问 INRIA-SPOON 中的 "this"变量

标签 java abstract-syntax-tree inria-spoon

我正在与 INRIA Spoon 合作。

我有一些动态方法调用,如下所示:

a.doSomething();

我可以使用 CtInspiration 实例的 getTarget() 方法获取变量访问 a。我的任务是生成代码将 a 存储到文件中。为此,我需要 a 的类型和源位置(类名、行等),以便我可以生成类似 logger.logSerialized(a, "My.Class:21") 或类似 logger.logDoubleArrayList(a, "My.otherClass:23)"

到目前为止,一切顺利,我通过获取 CtInspiration 实例的 getTarget 方法的结果,成功地做到了这一点。但是,当调用的目标等于 this 时,例如:

doSomething(); // equivalent to -> this.doSomething();

getTarget 返回null

我怎样才能获得给定CtInspiration目标的this变量访问

最佳答案

通过查找 CtThisAccess 的目标 (getTarget) 实例或直接处理 CtThisAccess

关于java - 如何访问 INRIA-SPOON 中的 "this"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34587748/

相关文章:

java - Eclipse JDT ASTParser 错误地转换枚举声明节点

c - 打印抽象语法树

java - 将 Spoon 模型转换为其他模型

java - 在 inria Spoon 中构建模型的更快方法

java - Eclipse 2019-09中光标随机消失并且有时停止写入

java - 在 Java 8 中不使用预定义方法将集合转换为另一种集合类型

java - 使用 Java Swings 和 mysql 自动填充表单

java - java date.before 函数是否考虑时区?

java - Groovy CodeVisitorSupport 调用方法