2tlin
@2tlin
Увлекаюсь Python и Web-программированием

Как узнать имя вызывающего метода через рефлексию в Java?

Нужно написать функцию, которая бы вернула полное имя класса и имя вызывающей функции в процессе выполнения. Полное имя класса я получаю, а как использовать получаемые с помощью .getDeclaredMethods() данные для определения имени вызывающего метода, не знаю.

Class<?> c = new Object() { }.getClass().getEnclosingClass(); // объект нужного класса
String nameFullleClass = c.getName(); // полное имя класса
Method[] methods = c.getDeclaredMethods(); // массив с именами всех методов
  • Вопрос задан
  • 751 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
StackTraceElement ste = Thread.currentThread().getStackTrace()[2];
System.out.printf("%s.%s()", ste.getClassName(), ste.getMethodName());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы