我正在使用JavaParser。
例如,我有以下方法
void checkCall()
{
Blabla.test();
}
Blabla.test();
是一个静态调用。我想将Blabla.test()
更改为ABCD.test()
而不更改任何其他内容。我从methodCall.getScope().get()
得到了Blabla。但是如何使用methodCall.setScope()
?它期望将Expression作为参数。
答案 0 :(得分:0)
要了解发生了什么,您必须考虑 JavaParser 是解析器。所以这意味着它构建了一个抽象语法树,它不解析符号(这是由JavaSymbolSolver完成的)。因此,从JavaParser的角度来看,这里的范围不是类。它取而代之的是名称,以后有人会解析并弄明白是一个类。
所有这些都表示你应该使用 NameExpr 作为传递给 setScope 的范围。
来源:我是 JavaParser
的撰稿人