¿Cómo comprobar si una Lista <Class> contiene una clase evitando al mismo tiempo la regla Sonar calamar: S2175

Tecnogirl:

Tengo una lista de anotaciones personalizados permitidos y estoy tratando de comprobar si se permite una anotación específica mediante una llamada al containsmétodo en la lista. Esto funciona, pero se queja de Sónar regla squid:S2175. Dice:

En la "lista <Class>" no puede contener una "clase"

Un par Collection métodos pueden ser llamados con argumentos de un tipo incorrecto, pero si lo hace no tiene sentido y es probable que el resultado de usar el argumento equivocado. Esta regla se plantea una cuestión cuando el tipo del argumento a List.contains o List.remove no está relacionada con el tipo utilizado para la declaración lista.

¿Cómo puedo arreglar esto?

He aquí un ejemplo mínimo:

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

        return annotations.contains(YourAnnotation.class);
}
Alexander Pavlov:

1) En primer lugar asegúrese de que está utilizando versiones frescas de sonarqube / SonarJava plug-in

2) sonarqube es el software escrito por la gente, por lo que podría tener errores. Por ejemplo, caso similar https://groups.google.com/forum/#!topic/sonarqube/qyOOOZORBNs te sugieren tema archivo en su Jira.

3) Mientras tanto, simplemente suprimirla. Supresión no es malo si tiene razones para hacerlo

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=180840&siteId=1
Recomendado
Clasificación