声纳自定义规则检查Java集合类型未知

时间:2018-11-20 10:01:04

标签: java sonarqube sonarqube-scan sonar-runner sonarlint

集合类型总是在自定义声纳检查规则类中返回'unknownSymbol'。

//演示类

public class SaasConstantNameCheckCase {
    private static final long serialVersionUID;
    private final String title;
    public static final Integer maxSize = 1111;// Noncompliant
    private static List list = new ArrayList<>();
    private static HashMap<String, String> map = new HashMap<>();
}

//自定义规则类

@Override
public void visitVariable(VariableTree tree) {
    VariableSymbol symbol = (VariableSymbol) tree.symbol();
    String type = symbol.type().name();
    System.out.println("type->"+type);
}

//测试结果

type->long
type->String
type->Integer
type->!unknownSymbol!
type->!unknownSymbol!

为什么?

1 个答案:

答案 0 :(得分:0)

SonarJava在无法解析实际类型符号时将显示此unknownSymbol!字符串。

在这种情况下,您应该使用完全限定的类型java.util.Listjava.util.HashMap,或者将其导入。