Decirle a IntelliJ IDEA qué métodos no identificar como no utilizados


IntelliJ IDEA tiene una característica útil para detectar métodos no utilizados y mostrarlos en gris, insinuando una advertencia potencial de código muerto.

Algunos métodos, sin embargo, no se ejecutan directamente sino a través de la reflexión. Un buen ejemplo sería @RequestMapping-métodos anotados que son ejecutados por Spring. IntelliJ tiene una integración de resorte decente, por lo tanto, detecta esta anotación y no marca dicho método como no utilizado.

Tengo un pequeño marco AJAX donde uso mi propia anotación para señalar qué método para ejecutar en base a ciertas propiedades de solicitud HTTP (muy similar a lo que está haciendo @RequestMapping). Comprensiblemente, IntelliJ no tiene idea de lo que significa mi anotación y marca tal método como no utilizado, agregando ruido innecesario.

Estaba pensando en:

  • anotando mi anotación con otra anotación, pero ¿hay alguna estándar que haga el trabajo sin ningún esfuerzo adicional?
  • encontrar una configuración particular en IntelliJ para identificar anotaciones personalizadas para marcar los métodos como se usan, pero esto requeriría que otros miembros del equipo hicieran lo mismo, básicamente un dolor.

¿Puede alguien sugerir alguna idea de cómo resolver este problema?

Author: mindas, 2011-03-12

4 answers

Puede decirle a IntelliJ que no advierta sobre el uso de cualquier método/campo anotado con la anotación que tiene el método "no utilizado".

Debería ser una solución rápida todo lo que tienes que hacer es presionar + y seleccionar Suppress for methods annotated by ...

No necesita agregar nada al código y solo tiene que hacer esto una vez por anotación.

introduzca la descripción de la imagen aquí

 75
Author: Peter Lawrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-12 19:51:06

@SuppressWarnings("unused") debería funcionar.

 38
Author: Vance Maverick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-12 17:03:54

La solución de@Peter Lawrey no ayudó en mi versión de Intellij (14.1.1).

Usé el camino difícil: Configuración-Editor- > Inspecciones - >Declaración no utilizada Ahora hay un punto de opciones, desplácese hacia abajo hasta Configure annotations... y puede agregar su anotación allí.

 5
Author: Zarathustra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-13 07:53:03

En "Configuración" puede "desmarcar" Configuración - Inspecciones - Redundancia de declaración - Inspección de código de declaración no utilizada.

 0
Author: Andrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-18 15:25:14