Pertanyaan Apa perbedaan antara hierarki panggilan dan menemukan referensi gerhana?


Saya bingung ketika menggunakan dua perintah ini eclipse  Ctrl+Bergeser+G dan Ctrl+Alt+H keduanya mengembalikan hasil yang sama.

Skenario:

Ingin menemukan di mana metode "findUsage" sudah dipanggil.

Kelas Sampel

enter image description here

Hierarki Panggilan Output (Ctrl+Alt+H) .

enter image description here

Temukan Referensi (Ctrl+Bergeser+G) keluaran

enter image description here

Keduanya menunjukkan hasil yang sama. Adakah yang tahu apa perbedaan antara dua perintah ini?


32
2017-12-24 10:11


asal


Jawaban:


"Temukan referensi" menunjukkan semuanya penelepon langsung dari metode yang dipilih. "Hierarki panggilan" sebaliknya menunjukkan juga penelepon dari para penelepon langsung, dan penelepon dari mereka, ... dan seterusnya.

Jadi output hanya identik, jika penelepon langsung dari metode yang Anda pilih tidak memiliki penelepon sendiri. Cukup coba kedua perintah pada basis kode yang lebih besar dan Anda akan segera melihat perbedaannya, seperti di tangkapan layar ini:

Call hierarchy

Jika Anda bertanya-tanya mengapa ada dua fitur seperti itu, jika "Temukan referensi" pada dasarnya hanyalah sebagian dari "hierarki Panggilan": Temukan referensi bekerja sangat cepat, sehingga Anda dapat menggunakannya sepanjang waktu tanpa menunggu hasil. Hierarki panggilan di sisi lain membutuhkan lebih banyak waktu komputasi dan karena itu dapat mengganggu alur kerja pengkodean Anda.


40
2017-12-24 12:36



  • Ctrl + Bergeser + G : Referensi di ruang kerja. Itu hanya menunjukkan referensi kelas atau metode yang dipilih atau variabel dalam kode sumber.
  • Ctrl + Alt + H : Panggilan Hierarki. Itu menunjukkan semuanya hirarki hingga kelas root.

0
2017-12-25 01:59