首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声纳javadoc规则

声纳javadoc规则
EN

Stack Overflow用户
提问于 2018-04-18 09:04:49
回答 1查看 1.2K关注 0票数 1

目前,我正在使用Sonar内部库重写校验样式规则JavadocStyle。但我面临一个问题--即使方法或类没有javadoc,规则也会在noMainDescription()上抛出真值。我正在使用用于获取javadoc信息的声呐javadoc类。这是我的考试课:

这就是我在声纳里得到的:

我的任务之一是检查javadoc是否包含描述或是否为空并引发冲突。

我使用这个代码来检查它:

代码语言:javascript
复制
@Override
public void visitNode(Tree tree) {
    Javadoc javadoc = new Javadoc(tree);
    String lines = String.join("  ", javadoc.javadocLines);

    // Javadoc description
    reportEmptyDescription(tree, javadoc);

}

public void reportEmptyDescription(Tree tree, Javadoc javadoc) {
    if (isDescriptionEmpty(javadoc)) {
        reportIssue(tree.firstToken(), "Javadoc has empty description section");
    }
    if (tree.is(Tree.Kind.METHOD) && ((MethodTree) tree).symbol().returnType().toString() != "void"
            && isReturnDescriptionEmpty(javadoc)) {
        reportIssue(tree.firstToken(), "Javadoc has empty return description");
    }
    if (tree.is(Tree.Kind.METHOD) && !((MethodTree) tree).parameters().isEmpty()
            && isParametersDescriptionEmpty(javadoc)) {
        reportIssue(tree.firstToken(), "Javadoc has empty parameters description");
    }
}

public boolean isDescriptionEmpty(Javadoc javadoc) {
    return javadoc.noMainDescription(); // check if it returns true when description exists
}

public boolean isReturnDescriptionEmpty(Javadoc javadoc) {
    return javadoc.noReturnDescription(); // check if it returns true when description exists
}

public boolean isParametersDescriptionEmpty(Javadoc javadoc) {
    if (javadoc.undocumentedParameters().isEmpty()) {
        return false;
    } else {
        return true;
    }
}

我的问题首先显示在:类没有javadocs,但是规则读取它有,但没有描述。

有什么办法可以防止这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-23 05:59:37

我发现了这个问题。这句话的意思是:

代码语言:javascript
复制
String lines = String.join("  ", javadoc.javadocLines);

当类或方法没有任何javadoc时,javadoc.javadocLines将不会返回任何内容。但是String.join仍然会为字符串行变量添加空间。规则检查行中是否存在变量和创建空间规则后,认为存在javadoc,并且它是空的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49895536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档