我最近开始研究 Sonar 自定义规则,所以我是新手。在编程时,我无法访问变量的值。
.g.考虑这个简单的例子
// Input program file
public void myMethod()
{
String a = "Name";
String b ="Address"
myMethod2(b);
}
对于上述示例,如何获取变量 a
和 b
的值和名称。
我试过使用 LiteralTree
但我只能获取值,而使用 Identifier Tree
我只能获取标识符的名称。
如何获取变量/标识符的名称和值?
最佳答案
您应该使用VariableTree
,通过它的simpleName()
方法您可以访问IdentifierTree
和initializer()
允许使用初始化程序(它可能不存在,在这种情况下它将是 null
)。但是,这仅适用于变量声明。对于作业,您将需要使用 AssignmentExpressionTree
,因为这是另一个语法元素。
根据您想要实现的目标,您可能需要使用语义模型(通过使用 IdentifierTree.symbol()
,例如,它可以通过 Symbol.usages()
方法。
关于java - 如何获取 SonarQube 中变量的值(自定义规则)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50039501/