В Intellij Idea есть проверка «Неиспользованное объявление», в которой можно найти весь неиспользуемый код. (см. этот вопрос ) Но я хочу найти все неиспользуемые классы, а не методы, переменные и т. д. Только классы. (в списке 3000 результатов сложно найти только классы). Как я могу это сделать?
java
intellij-idea
dead-code
вишня
источник
источник
Ответы:
Появятся настройки
Настройки закрываются
Поиск начинается
источник
Я не думаю, что это выполнимо. Я подозреваю, что эта функция намеренно исключена из IDE, потому что ее нельзя безопасно использовать, как другие рефакторинги «удалить неиспользуемые XXX».
Неиспользуемые объявления, которые ищет IDEA (и AFAIK, NetBeans), предназначены для частных членов и локальных переменных: вещей, которые недоступны, даже динамически, извне этого класса или области. (Ну, по крайней мере, не делая с Reflection или взломом JVM того, что вам не нужно.) Независимо от того, что внешний код делает с вашей библиотекой, это не приведет к использованию этих вещей, потому что их область действия ограничена, а IDE может все это увидеть. Компилятор может определить это, посмотрев только на ваш код.
Для классов, даже если у них нет
public
доступа, на них можно ссылаться динамическиClass.forName()
, и это действительно происходит в живом коде. Таким образом, даже если они явно не используются в коде вашего проекта, они могут использоваться в зависимости от того, что запускаете вы или внешний код, использующий вашу библиотеку. Таким образом, IDE не может гарантировать, что удаление этих классов не изменит наблюдаемого извне поведения.Вот почему я думаю, что IDEA просто не обеспечивает такого поведения: это может дать пользователям ложные ожидания в отношении безопасности, и их удаление не является безопасным рефакторингом.
источник
Возможно, вам стоит заглянуть в
Unused Symbol
осмотр со следующими настройками:источник
Я не уверен, что это ответит на ваш вопрос, но в прошлом я использовал инструмент Fortify для выполнения правил проверки кода в проекте, которые точно указывают на неиспользуемый импорт, мертвый код, неиспользуемые классы и т. Д. Это платное программное обеспечение, но я Я уверен, что для этого будут доступны некоторые бесплатные плагины / программное обеспечение.
источник