Saya memiliki aplikasi sebagai file JAR dengan banyak dependensi. Untuk beberapa alasan saya perlu mendekompilasi salah satu perpustakaan dan membukanya dengan Eclipse. Untuk antarmuka tertentu dalam proyek, apakah ada cara untuk menemukan kelas yang mengimplementasikannya? Mungkin saja antarmuka diimplementasikan di perpustakaan lain yang belum saya dekompilasi. Apakah mungkin melakukan ini untuk kelas semacam ini?
88
Coba Ctrl+ Tsetelah memilih nama kelas; harus bekerja dalam Perspektif Java.
sumber
Anda dapat "Show Type Hierarchy" pada item (Klik Kanan untuk memilih opsi ini atau tekan F4saat item disorot) *.
Namun, ini hanya akan mencantumkan item dalam proyek yang dirujuk ("tergantung"). Tidak pada orang lain.
Jadi, jika Anda telah mendekompilasi sebuah jar, dan ada jar lain yang belum Anda dekompilasi, maka implementasi (antarmuka) dalam jar itu tidak akan dicantumkan.
Juga, katakanlah Anda telah mendekompilasi sebuah botol sebagai sebuah proyek dan ada proyek lain yang merujuk ke botol tersebut, dan bukan proyek yang didekompilasi, implementasi di dalamnya juga tidak akan dicantumkan.
Jadi Anda harus mendekompilasi semua toples dan menambahkannya sebagai proyek (dan menambahkan referensi melalui "Java Build Path") untuk memastikan semua implementasi dalam toples pilihan Anda telah terdaftar.
* Hierarki tipe cepat, ctrl + T akan menampilkan struktur serupa di panel jenis tooltip / pelengkapan otomatis. Namun hierarki tipe lengkap lebih berguna untuk tipe analisis yang ingin Anda lakukan.
sumber
Ada tombol radio "Pelaksana" di Pencarian Java.
sumber
Atau klik kanan dan pilih
Quick Type Hierarchy
menu pull-down untuk memperluas antarmuka dan kelas implementasi.sumber
Ctrl + H (Opsi Pencarian) Buka perspektif Pencarian Java dan, masukkan nama antarmuka, klik tombol radio Implementors dan Anda akan menemukan kelas mana yang menerapkan antarmuka tertentu. Sama seperti jawaban dari stackexchanger di atas
sumber
Pilih nama kelas, lalu 'F4' di Eclipse (lingkungan Windows)
sumber