Как изменить тип объекта в JavaParser

Я использую JavaParser.

Например, у меня есть метод ниже

void checkCall()
{
    Blabla.test();
}

Blabla.test(); это статический вызов. я хочу измениться Blabla.test() в ABCD.test() без изменения любого другого. Я получил Blabla от methodCall.getScope().get(), Но как использовать methodCall.setScope()? Ожидается выражение в качестве параметра.

1 ответ

Чтобы понять, что происходит, вы должны учитывать, что JavaParser является синтаксическим анализатором. Таким образом, это означает, что он создает Абстрактное синтаксическое дерево, он не разрешает символы (это делается JavaSymbolSolver). Поэтому область действия здесь не является классом, с точки зрения JavaParser. Вместо этого это имя, которое кто-то позже решит и выяснит, является ли это классом.

Все это говорит о том, что вы должны использовать NameExpr в качестве своей области для передачи в setScope.

Источник: я вкладчик в JavaParser

Другие вопросы по тегам