我有一个允许的自定义注释列表,并且我正在尝试通过调用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)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |