簡體   English   中英

自定義SonarQube規則以識別實例變量

[英]Custom SonarQube Rule to identify instance variables

我正在創建一個自定義的SonarQube規則,以警告包含特定字符串的實例變量名稱。 似乎Kind.VARIABLE檢測到所有變量,包括局部變量。 有沒有一種方法只能檢測和處理實例變量?

為什么不檢查父母的Kind 對於實例變量,它應該是CLASS

實例變量中bann是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.");
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM