gpt4 book ai didi

java - 如何获取 Sonar 树的参数值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:22 25 4
gpt4 key购买 nike

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

例如下面的代码

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

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

另外,能否获取方法调用的变量是什么?

例如下面的代码

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

我怎么知道日志是类 Logger 的对象?

最佳答案

以下应该可以解决问题:

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

关于java - 如何获取 Sonar 树的参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38862873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com