Eclipse에서 특정 인터페이스를 구현하는 클래스를 찾는 방법은 무엇입니까?


88

많은 종속성을 가진 JAR 파일로 응용 프로그램이 있습니다. 어떤 이유로 라이브러리 중 하나를 디 컴파일하고 Eclipse로 열어야합니다. 프로젝트의 주어진 인터페이스에 대해이를 구현하는 클래스를 찾는 방법이 있습니까? 아직 디 컴파일하지 않은 다른 라이브러리에서 인터페이스가 구현 된 경우 일 수 있습니다. 이런 종류의 수업에 이것을 할 수 있습니까?

답변:


115

인터페이스를 마우스 오른쪽 버튼으로 클릭하고 "Open type hierarchy"를 선택하십시오. 그런 다음 "하위 유형 계층 표시"를 클릭하십시오.


아무 것도 표시되지 않았습니다. "Show the subtype hierarchy"를 클릭하면 클래스가 구현 한 인터페이스가 아닌 인터페이스 만 보입니다.
Am1rr3zA

1
그러면 프로젝트의 Java 빌드 경로에있는 클래스가이 인터페이스를 구현하지 않음을 의미합니다. 물론 Eclipse는 잠재적 인 클래스에 대해 알아야합니다.이를 포함하는 jar 파일은 프로젝트의 Java 빌드 경로에 있어야합니다.
JB Nizet 2011 년

Java 빌드 경로에 다른 jar 파일을 추가해야 함을 의미합니까?
Am1rr3zA

5
네, 물론입니다. Eclipse는 클래스 경로의 클래스에 대해서만 알고 있습니다. 인터페이스를 구현하는 클래스를 찾기 위해 전체 하드 디스크를 스캔하지는 않습니다.
JB Nizet 2011 년

Java Build Path에 다른 Jar 파일을 추가했지만 여전히 구현을 보여주지 않았습니다. 리플렉션을 통해 사용할 수 있기 때문에 일부 클래스에서 구현한다고 확신합니다.
Am1rr3zA 2011 년

47

클래스 이름을 선택한 후 Ctrl+ T를 시도하십시오 . Java Perspective에서 작동해야합니다.


10

항목에서 "유형 계층 표시"를 수행 할 수 있습니다 (이 옵션을 선택하려면 마우스 오른쪽 버튼을 클릭하거나 F4항목이 강조 표시되면 키를 누릅니다 ) *.

그러나 이것은 참조 된 ( "종속") 해당 프로젝트의 항목 만 나열합니다. 다른 사람이 아닙니다.

따라서 jar를 디 컴파일했고 디 컴파일하지 않은 다른 jar가있는 경우 해당 jar의 구현 (인터페이스)이 나열되지 않습니다.

또한 jar를 프로젝트로 디 컴파일했으며 디 컴파일 된 프로젝트가 아니라 jar를 참조하는 다른 프로젝트가 있다고 가정 해 보겠습니다. 그 안에있는 구현도 나열되지 않습니다.

따라서 모든 jar를 디 컴파일하고 프로젝트로 추가 (및 "Java Build Path"를 통해 참조 추가)하여 선택한 jar의 모든 구현이 나열되는지 확인해야합니다.

* Quick type Hierarchy, ctrl + T 는 툴팁 / 자동 완성 패널에서 유사한 구조를 보여줍니다. 그러나 완전한 유형 계층 구조는 수행하려는 분석 유형에 더 유용합니다.


8

Java Search에는 라디오 버튼 "Implementors"가 있습니다.


3
질문에 어떻게 대답하지 않습니까? Java Search를 열고 인터페이스 이름을 입력하고 "Implementors"를 클릭하면 "특정 인터페이스를 구현하는 클래스를 찾습니다."
stackexchanger

1

또는 마우스 오른쪽 버튼을 클릭하고 Quick Type Hierarchy인터페이스를 확장하고 클래스를 구현하는 풀다운 메뉴를 선택 합니다.


마우스 오른쪽 버튼을 클릭하고 Quick Type Hierarchy를 선택하면 클래스가 구현 한 인터페이스가 아닌 인터페이스 만 보입니다
Am1rr3zA

0

Ctrl + H (검색 옵션) Java 검색 퍼스펙티브를 열고 인터페이스 이름을 입력하고 구현 자 라디오 버튼을 클릭하면 특정 인터페이스를 구현하는 클래스를 찾을 수 있습니다. 위의 stackexchanger의 답변과 동일


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.