[java] Intellij Idea에서 사용하지 않는 모든 클래스를 찾는 방법은 무엇입니까?

Intellij Idea에서 사용되지 않은 모든 코드를 찾을 수있는 검사 “사용되지 않은 선언”이 있습니다. ( 이 질문 참조 ) 그러나 메서드, 변수 등이 아닌 사용되지 않는 모든 클래스를 찾고 싶습니다 . 클래스 . (3000 개의 결과 목록에서 클래스 만 찾기가 어렵습니다). 어떻게 할 수 있습니까?



답변

  • Ctrl+ Shift+ A(Mac Command+ Shift+ A)를 누릅니다.
  • “미사용 선언”을 입력하십시오.
  • “미사용 선언”을 두 번 클릭합니다.

설정이 나타납니다.

  • Java / Declaration redundancy / Unused declaration을 클릭하십시오.
  • 오른쪽 하단에서 “On the fly editor settings”를 선택합니다.
  • 체크 필드를 해제하고, …, 매개 변수를 확인합니다. 체크 클래스 만 선택해야합니다.
  • 확인을 누릅니다.

설정이 닫힙니다.

  • 메뉴 모음에서 Analyze / Run Inspection by Name (또는 Ctrl+ Alt+ Shift+ I-Mac Command+ Option+ Shift+ I)을 클릭합니다.
  • “Unused decla”텍스트 삽입
  • “Unused declaration Java | Declaration redundancy”를 선택하십시오.

검색 시작

  • 완료되면 Idea 하단에서 작업 상태를 확인하십시오. 결과를 즐기고 엉망인 코드를 정리하는 멋진 느낌을 즐기십시오. 🙂

답변

나는 이것이 가능하다고 생각하지 않습니다. 이 기능은 다른 “사용하지 않는 XXX 제거”리팩토링처럼 안전하게 사용할 수 없기 때문에 의도적으로 IDE에서 제외되었다고 생각합니다.

사용하지 않는 IDEA (및 AFAIK, NetBeans) 선언은 개인 멤버 및 로컬 변수를위한 것입니다. 해당 클래스 또는 범위 외부에서 동적으로도 액세스 할 수없는 것입니다. (적어도 리플렉션이나 JVM 해킹을하지 않고서는 안됩니다.) 외부 코드가 라이브러리에서 무엇을하든 상관없이 범위가 제한되어 있고 IDE는 모든 것을 볼 수 있습니다. 컴파일러는 코드 만보고이를 확인할 수 있습니다.

클래스의 경우 public액세스 권한 이 없더라도를 사용하여 동적으로 참조 할 수 있으며 Class.forName()이는 실제로 라이브 코드에서 발생합니다. 따라서 프로젝트 코드 내에서 분명히 사용되지 않더라도 라이브러리 실행을 사용하는 사용자 또는 외부 코드에 따라 사용될 수 있습니다. 따라서 IDE는 이러한 클래스를 제거해도 외부에서 관찰 가능한 동작이 변경되지 않는다고 보장 할 수 없습니다.

그렇기 때문에 IDEA가이 동작을 제공하지 않는다고 생각합니다. 사용자에게 안전에 대한 잘못된 기대를 줄 수 있으며이를 제거하는 것은 안전한 리팩토링이 아닙니다.


답변

Unused Symbol다음 설정으로 검사를 조사 해야 할 수도 있습니다 .

여기에 이미지 설명 입력


답변

이것이 귀하의 질문에 답할 수 있을지 확실하지 않지만 과거에 Fortify로 프로젝트에서 코드 검토 규칙을 실행하는 도구를 사용했습니다. 사용되지 않은 가져 오기, 데드 코드, 사용되지 않은 클래스 등을 정확하게 가리키는 도구입니다. 유료 소프트웨어이지만 저는 무료 플러그인 / 소프트웨어도 동일하게 사용할 수있을 것입니다.


답변