有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取sonar树的参数值

我正在为SonarQube for java编写一个自定义规则,我想检查参数的值是否合格。例如,我想知道字符串是否符合特定的模式。我只能测试参数是否为字符串,但无法得到确切的值。API允许我这样做吗

例如,对于下面的代码

log.error("errorID:210134 It's an error");

我可以获取参数并测试字符串是否包含errorID吗

此外,我可以得到方法调用的变量吗

例如,对于下面的代码

log.error("errorID:210134 It's an error");

如何知道日志是类记录器的对象


共 (1) 个答案

  1. # 1 楼答案

    下面应该可以做到这一点:

    • 查看方法调用的参数时,请检查其类型是否为STRING_LITERAL,然后将参数转换为LiteralTree。从那里,您可以访问它的值,作为String(请注意,它将包含双引号)
    • 要检查调用是否在变量上完成,请从方法调用中获取methodSelect()表达式树。如果它的种类是MEMBER_SELECT,则将其转换为MemberSelectExpressionTree。从这里,检查expression()的类型是否是IDENTIFIER。如果是这样,那么您将能够获得IdentifierTree及其相关符号。然后,您可以说调用该方法的符号是否是变量,检查其类型,等等