Jeśli chcesz ślad za jedyne bieżącego wątku (zamiast wszystkich wątków w systemie, jak sugeruje Ram), wykonaj:
Thread.currentThread(). getStackTrace()
Aby znaleźć rozmówcę, zrobić:
private String getCallingMethodName() {
StackTraceElement callingFrame = Thread.currentThread().getStackTrace()[4];
return callingFrame.getMethodName();
}
I wywołanie tej metody od wewnątrz metody, która musi wiedzieć, kim jest jego rozmówca. Jednak słowo ostrzeżenia: indeks ramki wywoławczej na liście może się różnić w zależności od JVM! Wszystko zależy od tego, ile warstw wywołań znajduje się w getStackTrace, zanim osiągniesz punkt, w którym generowany jest ślad. Bardziej niezawodnym rozwiązaniem byłoby pobranie śladu i powtórzenie go, szukając ramki dla metody getCallingMethodName, a następnie wykonaj dwa kroki w górę, aby znaleźć prawdziwego dzwoniącego.
To chyba lepiej użyć istniejące narzędzie do debugowania. Jest ich wielu i możesz poświęcić ten czas na pracę nad projektem zamiast na nowo wymyślać coś. Oczywiście, jeśli nie masz nic przeciwko pisaniu debuggera. –