web-dev-qa-db-fra.com

Comment trouver toutes les classes non utilisées dans Intellij Idea?

Il existe une inspection "Déclaration non utilisée" qui peut trouver tout le code non utilisé dans Intellij Idea. (voir cette question ) Mais je veux trouver toutes les classes non utilisées, pas méthodes, variables, etc. Seulement classes. (Il est difficile de ne trouver que des classes dans une liste de résultats de 3000). Comment je peux faire ça?

103
Cherry
  • Presse Ctrl+Shift+A (sous Mac Command+Shift+A)
  • Entrez "déclaration non utilisée"
  • Double-cliquez sur "Déclaration non utilisée"

Les paramètres vont apparaître

  • Cliquez sur Java/Redondance de déclaration/Déclaration non utilisée
  • en bas à droite, sélectionnez "Paramètres de l'éditeur à la volée"
  • décochez les champs de vérification, ..., vérifiez les paramètres. Seules les classes de contrôle doivent être cochées.
  • Appuyer sur OK

Paramètres ferme

  • Dans la barre de menus, cliquez sur Analyser/Exécuter l’inspection par nom (ou Ctrl+Alt+Shift+I - sous Mac Command+Option+Shift+I)
  • Insérer le texte "Déclarations non utilisées"
  • Sélectionnez "Déclaration non utilisée Java | Déclaration redondante"

La recherche commence

  • Vérifiez l'état du travail en bas de l'idée, une fois terminé: profitez des résultats et de la sensation de nettoyage du code encrassé. :)
183
BlondCode

Je ne pense pas que ce soit faisable. Je soupçonne que cette fonctionnalité est intentionnellement laissée de côté des IDE car elle ne peut pas être utilisée en toute sécurité, contrairement à d'autres refactorings "Supprimer XXX inutilisés".

Les déclarations non utilisées IDEA (et AFAIK, NetBeans) cherche) sont destinées aux membres privés et aux variables locales: éléments inaccessibles, même dynamiquement, en dehors de cette classe ou de cette étendue. (Enfin, au moins sans faire quelque chose avec Reflection ou un piratage JVM que vous n’êtes pas censé faire.) Quel que soit le code extérieur utilisé par votre bibliothèque, il ne provoquera pas l’utilisation de ces éléments, car leur portée est limitée et IDE peut tout voir, le compilateur peut le déterminer en regardant simplement votre code.

Pour les classes, même si elles n’ont pas accès à public, elles peuvent être référencées de manière dynamique avec Class.forName(), et cela se produit réellement dans du code live. Ainsi, même s'ils ne sont apparemment pas utilisés dans le code de votre projet, ils peuvent être utilisés en fonction de ce que vous ou du code externe utilisant votre bibliothèque exécute. Ainsi, le IDE ne peut garantir que la suppression de ces classes ne modifiera pas le comportement observable de manière externe.

C’est pourquoi je pense que IDEA n’offre tout simplement pas ce comportement: cela pourrait donner aux utilisateurs de fausses attentes en matière de sécurité, et les supprimer n’est pas une refactorisation sûre.

9
Andrew Janke

Peut-être devriez-vous regarder dans le Unused Symbol inspection avec les paramètres suivants:

enter image description here

0
Vic

Je ne sais pas si cela répondra à votre question, mais j’utilisais auparavant Fortify pour exécuter des règles de révision de code sur le projet, qui indiquaient précisément les importations inutilisées, le code mort, les classes inutilisées, etc. C’est un logiciel payant, mais je Je suis sûr qu'il y aura des plugins/logiciels gratuits disponibles pour la même chose.

0
sunny