Intelij Idea에서 사용되지 않는 모든 클래스를 찾으려면 어떻게 해야 합니까?
Intelij Idea에서 사용되지 않는 코드를 모두 찾을 수 있는 "사용하지 않는 선언" 검사가 있습니다.(IntelyJ IDEA를 사용하여 사용하지 않는 코드를 찾는 방법 참조)그러나 메서드나 변수 등이 아닌 사용되지 않는 모든 클래스를 찾고 싶습니다.수업만.(3000 결과 목록에서 클래스만 찾기는 어렵습니다).내가 어떻게 할 수 있지?
- ++(ShiftAMac ShiftA++의 경우)를 누릅니다.
- "미사용 선언"을 입력합니다.
- "미사용 선언"을 더블 클릭합니다.
설정이 팝업 됩니다.
- Java/Declaration Redundancy/Unused Declaration을 클릭합니다.
- 오른쪽 아래에서 "On the fly editor settings"를 선택합니다.
- 체크 필드, ..., 파라미터를 체크합니다.Check Classes만 선택해야 합니다.
- [확인] 을 누릅니다.
설정이 닫힙니다.
- 메뉴 모음에서 Analyze / Run Inspection by Name(이름별 검사 실행)(Mac의 경우 +++ -)AltShiftIOptionShiftI을 클릭합니다.
- "사용되지 않은 decla" 텍스트
- "Unused declaration Java|Declaration redundancy"를 선택합니다.
검색 시작
- Idea 하단에 있는 작업 상태를 확인합니다.끝나면 결과를 즐기면서 엉망이 된 코드를 정리할 수 있습니다.:)
이건 안 될 것 같아.이 기능은 다른 '미사용 XXX 제거' 리팩터링처럼 안전하게 사용할 수 없기 때문에 의도적으로 IDE에서 제외된 것이 아닐까 생각합니다.
IDEA(및 AFAIK, NetBeans)가 찾고 있는 미사용 선언은 프라이빗 멤버와 로컬 변수(클래스 또는 스코프 이외에서는 동적으로도 액세스 할 수 없는 것)를 위한 것입니다.(적어도 Reflection이나 JVM 해킹은 하지 말아야 할 일을 하지 않고)라이브러리에서 외부 코드가 어떤 역할을 하든 범위가 한정되어 있고 IDE가 모든 것을 인식할 수 있기 때문에 이러한 코드가 사용되지 않습니다.컴파일러는 코드만 보고 판단할 수 있습니다.
수업을 위해서라도public
액세스, 이러한 액세스에 의해 동적으로 참조할 수 있습니다.Class.forName()
라이브 코드에서 실제로 발생합니다.따라서 프로젝트 코드 내에서 사용되지 않더라도 라이브러리의 실행을 사용하는 외부 코드 또는 사용자 코드에 따라 사용할 수 있습니다.따라서 IDE는 이러한 클래스를 제거해도 외부에서 관찰할 수 있는 동작이 변경되지 않는다고 보장할 수 없습니다.
그렇기 때문에 IDEA는 이러한 동작을 제공하지 않는다고 생각합니다.사용자에게 안전성에 대한 잘못된 기대를 갖게 할 수 있으며 이를 제거하는 것은 안전한 리팩터링이 아닙니다.
게 좋을 것 요.Unused Symbol
다음과 같은 설정으로 검사를 수행합니다.
실제로 선언에 사용되더라도 사용되지 않는 클래스로 인스턴스화되지 않은 클래스가 선언된다는 것을 알게 되었습니다. 제가 은 '아, 이, 이, '아예'는Analyze
에 리 and and andUnused declaration
각 항목을 오른쪽 클릭하고 사용법 찾기를 클릭합니다."사용할 수 없습니다"라는 팝업이 나타나면 다음과 같이 문제 메뉴에서 직접 안전하게 삭제할 수 있습니다.이것이 제가 발견한 가장 빠른 방법입니다.인텔리J 오토델테인스턴스화되지 않았을 뿐입니다.
gif에서는 삭제하기로 선택한 이 클래스의 사용법이 없음을 알려주는 팝업이 표시되지 않습니다.
이것이 당신의 질문에 대답할 수 있을지는 모르겠지만, 저는 과거에 Fortify로서 사용하지 않는 Import, 데드 코드, 미사용 클래스 등을 정확하게 가리키는 코드 리뷰 규칙을 실행하기 위해 툴을 사용했습니다.유료 소프트웨어이지만, 무료 플러그인/소프트웨어도 있을 것입니다.
언급URL : https://stackoverflow.com/questions/22522013/how-find-all-unused-classes-in-intellij-idea
'programing' 카테고리의 다른 글
Node.js에서 Python 함수를 호출하는 방법 (0) | 2022.10.22 |
---|---|
if(expr) 대신 if(!(expr) 사용 (0) | 2022.10.22 |
datadir 소유권은 재부팅 후 매번 mysql:mysql로 리셋됩니다. (0) | 2022.10.22 |
Mac OS X Yosemite/El Capitan에서 MySQL Server 자동 부팅 (0) | 2022.10.22 |
전처리 후 gcc가 C코드를 출력할 수 있습니까? (0) | 2022.10.22 |