2011-09-12 29 views
67

Tôi có một ứng dụng dưới dạng tệp JAR với nhiều phụ thuộc. Đối với một số lý do tôi cần phải dịch ngược một trong các thư viện và mở nó bằng Eclipse. Đối với một giao diện cụ thể trong dự án, có cách nào để tìm (các) lớp thực hiện nó không? Nó có thể là trường hợp giao diện được thực hiện trong thư viện khác mà tôi đã không dịch ngược. Có thể làm điều này cho loại lớp học này không?Làm thế nào để tìm ra những lớp nào thực hiện một giao diện cụ thể trong Eclipse?

Trả lời

90

Nhấp chuột phải vào giao diện và chọn "Phân cấp loại mở". Sau đó nhấp vào "Hiển thị phân cấp loại phụ".

+0

Nó không hiển thị cho tôi bất cứ điều gì, khi tôi nhấp vào "Hiển thị phân cấp kiểu phụ" Tôi chỉ thấy Giao diện không phải lớp đã triển khai nó. – Am1rr3zA

+0

Sau đó, nó có nghĩa là không có lớp nào trong Đường dẫn xây dựng Java của dự án triển khai giao diện này. Eclipse tất nhiên phải biết về các lớp tiềm năng: tệp jar chứa chúng phải nằm trong Đường dẫn xây dựng Java của dự án. –

+0

Bạn có nghĩa là tôi phải thêm tệp jar khác vào Đường dẫn xây dựng Java? – Am1rr3zA

37

Hãy thử Ctrl + T sau khi chọn tên lớp; nên làm việc trong Phối cảnh Java.

+2

Câu trả lời hay nhất! Nó phải được đánh dấu là anh ta đúng. –

10

Bạn có thể "Hiển thị phân cấp loại" trên mục (Nhấp chuột phải để chọn tùy chọn này hoặc nhấn F4 khi mục được tô sáng) *.

Tuy nhiên, điều này sẽ chỉ liệt kê các mục trong các dự án được giới thiệu ("phụ thuộc"). Không phải ở những người khác.

Vì vậy, nếu bạn đã dịch ngược một cái bình, và có một cái bình khác mà bạn không bị dịch ngược, thì việc triển khai (của giao diện) trong cái bình đó sẽ không được liệt kê.

Ngoài ra, giả sử bạn đã dịch ngược một cái bình làm dự án và có một dự án khác đề cập đến cái bình, và không phải là dự án đã biên dịch, việc triển khai trong đó cũng sẽ không được liệt kê.

Vì vậy, bạn sẽ phải dịch ngược tất cả các lọ và thêm chúng làm dự án (và thêm tham chiếu qua "Đường dẫn xây dựng Java") để đảm bảo tất cả các triển khai trong các lọ bạn chọn được liệt kê.

* Nhanh loại Hierarchy, ctrl +T sẽ hiển thị một cấu trúc tương tự như trong một loại tooltip/autocomplete của bảng điều khiển. Nhưng hệ thống phân cấp kiểu hoàn chỉnh sẽ hữu ích hơn cho loại phân tích bạn định làm.

1

Hoặc nhấp chuột phải và chọn Quick Type Hierarchy để có menu kéo xuống của giao diện mở rộng và lớp triển khai.

+0

Khi tôi nhấp chuột phải và chọn Phân loại Loại nhanh Tôi chỉ thấy Giao diện không phải lớp đã triển khai nó – Am1rr3zA

7

Có nút radio "Người triển khai" trong Tìm kiếm Java.

+3

Làm cách nào để nó không trả lời được câu hỏi? Mở Tìm kiếm Java, nhập tên giao diện, nhấp vào "Người triển khai" và bạn sẽ "tìm các lớp nào triển khai một giao diện cụ thể". – stackexchanger

0

Ctrl + H (tùy chọn tìm kiếm) Mở phối cảnh tìm kiếm Java và nhập tên giao diện, bấm nút radio triển khai và bạn sẽ tìm thấy lớp nào triển khai một giao diện cụ thể. Giống như câu trả lời từ stackexchanger trên

+0

Các câu trả lời này sẽ không phải lúc nào cũng theo thứ tự ... –

0

Chọn tên lớp, sau đó chọn 'F4' trong Eclipse (môi trường Windows)

Các vấn đề liên quan