sonar 自定义规则检查 java 集合类型是 unknownSymbol
sonar custom rule check java collection type is unknownSymbol
自定义声纳检查规则中的集合类型总是 return 'unknownSymbol' class。
//演示class
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<>();
}
// 自定义规则 class
@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!
为什么?
SonarJava 将在无法解析实际类型符号时显示此 unknownSymbol!
字符串。
在这种特殊情况下,您应该使用完全限定类型 java.util.List
和 java.util.HashMap
,或者导入它们。
自定义声纳检查规则中的集合类型总是 return 'unknownSymbol' class。
//演示class
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<>();
}
// 自定义规则 class
@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!
为什么?
SonarJava 将在无法解析实际类型符号时显示此 unknownSymbol!
字符串。
在这种特殊情况下,您应该使用完全限定类型 java.util.List
和 java.util.HashMap
,或者导入它们。