Frage Wie finde ich alle nicht verwendeten Klassen in Intellij Idea?


Es gibt eine Inspektion "Unused declaration", die den gesamten ungenutzten Code in Intellij Idea findet. (sehen diese Frage) Aber ich möchte alle nicht verwendeten Klassen finden, nicht Methoden, Variablen usw. Nur Klassen. (Es ist schwierig, nur Klassen in 3000 Ergebnisliste zu finden). Wie kann ich das machen?


76
2018-03-20 02:03


Ursprung


Antworten:


  • Drücken Sie Strg+Verschiebung+EIN
  • Geben Sie "unbenutzte Deklaration" ein
  • Klicken Sie doppelt auf "Nicht verwendete Deklaration"

Einstellungen werden angezeigt

  • Klicken Sie auf Java / Deklarationsredundanz / Nicht verwendete Deklaration
  • rechts unten wählen Sie "On-the-Fly-Editor-Einstellungen"
  • Felder abwählen, ..., Parameter prüfen. Nur Check-Klassen sollten aktiviert sein.
  • drücke OK

Sitzungen werden geschlossen

  • Klicken Sie in der Menüleiste auf Analyse / Überprüfung nach Name ausführen (oder Strg+Alt+Verschiebung+ich)
  • Text einfügen "Unbenutztes Deklar"
  • Wählen Sie "Nicht verwendete Deklaration Java | Deklarationsredundanz"

Die Suche beginnt

  • Überprüfen Sie den Jobstatus am Ende von Idea, wenn Sie fertig sind: Genießen Sie die Ergebnisse und das großartige Gefühl, den vermischten Code zu reinigen. :)

123
2017-07-07 11:13



Ich denke nicht, dass das machbar ist. Ich vermute, dass dieses Feature absichtlich von IDEs ausgeschlossen ist, da es nicht sicher verwendet werden kann, wie andere "nicht verwendete XXX" Refactorings können.

Die nicht verwendeten Deklarationen, nach denen IDEA (und AFAIK, NetBeans) sucht, sind für private Member und lokale Variablen: Dinge, auf die nicht zugegriffen werden kann, auch nicht von außerhalb der Klasse oder des Bereichs. (Nun, zumindest ohne Dinge mit Reflection oder JVM Hacking zu tun, die Sie nicht sollten.) Egal, was externer Code mit Ihrer Bibliothek tut, wird es nicht dazu führen, dass diese Dinge verwendet werden, weil ihr Umfang begrenzt ist und die Die IDE kann alles sehen. Der Compiler kann dies feststellen, indem er nur Ihren Code betrachtet.

Für Klassen, auch wenn sie nicht haben public Zugriff können sie dynamisch mit referenziert werden Class.forName()und das passiert tatsächlich im Live-Code. Selbst wenn sie nicht offensichtlich im Code Ihres Projekts verwendet werden, werden sie möglicherweise verwendet, je nachdem, was Sie oder externer Code, der Ihre Bibliothek verwendet, ausführen. Daher kann die IDE nicht garantieren, dass das Entfernen dieser Klassen das extern beobachtbare Verhalten nicht ändert.

Aus diesem Grund denke ich, dass IDEA dieses Verhalten nicht bietet: Es könnte den Benutzern falsche Erwartungen in Bezug auf Sicherheit geben, und das Entfernen ist kein sicheres Refactoring.


8
2018-04-29 04:43



Vielleicht solltest du in die Unused Symbol Inspektion mit folgenden Einstellungen:

enter image description here


0
2018-03-20 08:39



Ich bin mir nicht sicher, ob dies Ihre Frage beantworten wird, aber ich habe ein Tool in der Vergangenheit als Fortify verwendet, um Code-Review-Regeln für das Projekt auszuführen, die genau auf die ungenutzten Importe, toten Code, ungenutzte Klassen usw. verweist. Es ist eine kostenpflichtige Software, aber ich Ich bin mir sicher, dass es einige kostenlose Plugins / Software geben wird.


0
2018-04-23 07:19