如何在SonarQube(自定义规则)中获取变量的值?

时间:2018-04-26 09:30:28

标签: java sonarqube rules

我最近开始研究声纳自定义规则,所以我是新手。编程时我无法访问变量的值。

.G。考虑这个简单的例子

// Input program file

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

如上例所示,如何获取变量ab的值和名称。

我尝试使用LiteralTree,但我只能获取值并使用Identifier Tree我只能获取标识符的名称。

如何获取变量/标识符的名称和值?

1 个答案:

答案 0 :(得分:3)

您应该使用setOnClickListener,并且可以通过VariableTree方法访问simpleName()IdentifierTree允许使用初始值设定项(可能不存在,在这种情况下,它将是initializer())。但是,这仅适用于变量声明。对于作业,您需要使用null,因为这是另一个语法元素。

根据您想要实现的目标,您可能需要使用语义模型(使用AssignmentExpressionTree,例如,可以通过IdentifierTree.symbol()方法为您提供变量的所有用法。 / p>