为了账号安全,请及时绑定邮箱和手机立即绑定

用于识别实例变量的自定义 SonarQube 规则

用于识别实例变量的自定义 SonarQube 规则

HUWWW 2021-09-15 16:43:56
我正在创建一个自定义 SonarQube 规则来警告包含特定字符串的实例变量名称。看来Kind.VARIABLE检测所有变量,包括局部变量。有没有办法只检测和处理实例变量?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

为什么不检查Kind父母的?对于实例变量,它应该是一个CLASS.


BLABLA在实例变量中禁止字符串的工作规则看起来像这样。


@Rule(key = "Banned Keyword Rule")

public class BannedKeywordRule extends IssuableSubscriptionVisitor {

    // Define the word to ban

    private static final String BANNED_KEYWORD = "BLABLA";


    @Override

    public List<Tree.Kind> nodesToVisit() {

        //  visit only the variables

        return ImmutableList.of(Tree.Kind.VARIABLE);

    }


    @Override

    public void visitNode(Tree tree) {

        VariableTree variableTree = (VariableTree) tree;

        // check if parent is CLASS aka variable is instance

        if(variableTree.parent().is(Tree.Kind.CLASS) && variableTree.simpleName().name().contains(BANNED_KEYWORD)) {

            reportIssue(variableTree, "String " + BANNED_KEYWORD + " can not be used as a instance variable.");

        }

    }

}


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信