Java 如何获取“信息”;这";INRIA-SPOON中的变量

Java 如何获取“信息”;这";INRIA-SPOON中的变量,java,abstract-syntax-tree,inria-spoon,Java,Abstract Syntax Tree,Inria Spoon,我和INRIA Spoon一起工作 我有一些动态方法调用,如下所示: a.doSomething(); 我可以使用CtInvocation实例的getTarget()方法获取变量accessa。我的任务是生成代码,将a存储到文件中。为此,我需要a的类型和源位置(类名、行等),以便生成类似logger.logSerializable(a,“My.class:21”)或类似logger.logDoubleArrayList(a,“My.otherClass:23)”的代码 到目前为止还不错,通过获

我和INRIA Spoon一起工作

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

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

到目前为止还不错,通过获取
CtInvocation
实例的
getTarget
方法的结果,我成功地做到了这一点。但是,当调用的目标是相等的
时,这个
,例如:

doSomething(); // equivalent to -> this.doSomething();
getTarget
返回null


如何获取给定的
CtInvocation
目标的
变量访问

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

使用哪个版本?在最新版本中,getTarget不应该返回null,而是一个CtThisAccess。不管怎样,你的评论正好回答了我的问题,谢谢!将Spoon版本切换到5.2时,应将
CtThisAccess
标记为隐式。