Я не думаю, що це можливо. Я підозрюю, що ця функція навмисно залишається без IDE, тому що її не можна безпечно використовувати так, як можуть інші "видалити невикористані XXX" рефактори.
Невикористані декларації IDEA (і AFAIK, NetBeans) шукають приватні члени та локальні змінні: речі, які не є доступними, навіть динамічно, за межами цього класу чи області. (Ну, принаймні, не роблячи речі з Reflection або злому JVM, які вам не належать.) Незалежно від того, що зовнішній код робить з вашою бібліотекою, це не спричинить використання цих речей, оскільки їх обсяг обмежений, а IDE може бачити все це. Компілятор може визначити це, переглянувши лише свій код.
Для класів, навіть якщо вони не мають public
доступу, на них можна динамічно посилатися Class.forName()
, і це фактично відбувається в реальному коді. Тож навіть якщо вони, мабуть, не використовуються в коді вашого проекту, вони можуть використовуватися залежно від того, який ви або зовнішній код використовуєте у вашій бібліотеці. Таким чином, IDE не може гарантувати, що видалення цих класів не змінить зовнішнє спостережуване поведінку.
Ось чому я вважаю, що IDEA просто не забезпечує такої поведінки: це може дати користувачам помилкові очікування щодо безпеки, а видалення їх не є безпечним рефакторингом.