如何在Custom Java Sonar规则中获得用户定义的数据类型的全限定名称

时间:2019-01-30 13:32:21

标签: java sonarqube sonarlint

请在下面找到代码段。

    Public class UserDefinedDTO {

    // userDefined variable is refers to UserDefined class
    private UserDefined userDefined;

    private String name;

    }

@Rule(key = "UserDefinedChecks", name = "Java Doc check", description = "", priority = Priority.BLOCKER, tags = {
        "bug" })
public class UserDefinedChecks extends IssuableSubscriptionVisitor{

    @Override
    public List<Kind> nodesToVisit() {
        return ImmutableList.of(Kind.VARIABLE);
    }

    @Override
    public void visitNode(Tree tree) {
        VariableTree variable = (VariableTree) tree;
        String name = variable.type().symbolType().fullyQualifiedName();
        System.out.println(name);
     }
}

输出:

java.lang.String
!unknownSymbol!

在获取用户定义的数据类型的fullyQualifiedName时,它给出!unknownSymbol!而不是确切的限定名称,但是如果我使用String而不是用户定义的数据类型,那么它将给出java.lang.String

请让我知道如何为用户定义的数据类型获取完全限定的名称。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这意味着您没有正确导入UserDefined类。添加导入