Jika Anda ingin jejak hanya untuk utas saat ini (daripada semua utas dalam sistem, seperti saran Ram), lakukan:
Thread.currentThread (). getStackTrace ()
Untuk menemukan penelepon, lakukan:
private String getCallingMethodName() {
StackTraceElement callingFrame = Thread.currentThread().getStackTrace()[4];
return callingFrame.getMethodName();
}
Dan panggil metode itu dari dalam metode yang perlu tahu siapa peneleponnya. Namun, kata peringatan: indeks frame panggilan dalam daftar dapat bervariasi sesuai dengan JVM! Itu semua tergantung pada berapa banyak lapisan panggilan yang ada di dalam getStackTrace sebelum Anda mencapai titik di mana jejak dihasilkan. Solusi yang lebih kuat adalah dengan mendapatkan jejak, dan beralihlah mencari frame untuk getCallingMethodName, kemudian ambil dua langkah lebih jauh untuk menemukan penelepon yang sebenarnya.