如何在避免Sonar规则squid的同时检查List <Class>是否包含类:S2175

Tec*_*irl 5 java sonarqube

我有一个允许的自定义注释列表,并且我正在尝试通过调用contains列表中的方法来检查是否允许特定的注释。这行得通,但是Sonar抱怨统治squid:S2175。它说:

“列表<类>”不能包含“类”

可以使用错误类型的参数来调用几个Collection方法,但这是没有意义的,并且可能是使用错误参数的结果。当List.contains或List.remove的参数类型与用于列表声明的类型无关时,此规则将引发问题。

我怎样才能解决这个问题?

这是一个最小的示例:

private boolean testClassContains(){
        final List<Class<? extends Annotation>> annotations = Arrays.asList(MyAnnotation.class,YourAnnotation.class);

        return annotations.contains(YourAnnotation.class);
}
Run Code Online (Sandbox Code Playgroud)