java如何获取sonar树的参数值
我正在为SonarQube for java编写一个自定义规则,我想检查参数的值是否合格。例如,我想知道字符串是否符合特定的模式。我只能测试参数是否为字符串,但无法得到确切的值。API允许我这样做吗
例如,对于下面的代码
log.error("errorID:210134 It's an error");
我可以获取参数并测试字符串是否包含errorID吗
此外,我可以得到方法调用的变量吗
例如,对于下面的代码
log.error("errorID:210134 It's an error");
如何知道日志是类记录器的对象
# 1 楼答案
下面应该可以做到这一点:
STRING_LITERAL
,然后将参数转换为LiteralTree
。从那里,您可以访问它的值,作为String
(请注意,它将包含双引号)李>methodSelect()
表达式树。如果它的种类是MEMBER_SELECT
,则将其转换为MemberSelectExpressionTree
。从这里,检查expression()
的类型是否是IDENTIFIER
。如果是这样,那么您将能够获得IdentifierTree
及其相关符号。然后,您可以说调用该方法的符号是否是变量,检查其类型,等等