Как получить значение переменной в SonarQube (custom-rules)? - PullRequest
0 голосов
/ 26 апреля 2018

Я недавно начал работать над пользовательским правилом сонара, поэтому я новичок в этом.Во время программирования я не смог получить доступ к значению переменной.

.g.Рассмотрим этот простой пример

// Input program file

public void myMethod()
    {
        String a = "Name";
        String b ="Address"
        myMethod2(b);
    }

Как получить значение и имя переменной a и b для приведенного выше примера.

Я пытался использовать LiteralTree, но ятолько в состоянии получить значение и с помощью Identifier Tree я могу только получить имя идентификатора.

Как получить имя и значение переменной / идентификатора?

1 Ответ

0 голосов
/ 26 апреля 2018

Вы должны использовать VariableTree, и с помощью метода simpleName() вы можете получить доступ к IdentifierTree, а initializer() позволяет работать с инициализатором (он может отсутствовать, в этом случае это будет null). Однако это работает только для объявления переменных. Для заданий вам нужно будет использовать AssignmentExpressionTree, потому что это еще один элемент грамматики.

В зависимости от того, чего вы хотите достичь, вам может потребоваться использовать семантическую модель (используя IdentifierTree.symbol(), которая может, например, предоставить вам все значения переменной методом Symbol.usages().

...