У меня есть в классе ONE два метода А и С, каждый передает свою уникальную строку в метод B, находящийся в классе TWO.
Метод B отправляет строку как sql запрос и возвращает результат.
И мне нужно понимать какой метод А или С прислал строку, от этот будет меняться логика работы метода В.
Как узнать какой метод вызвал текущий метод?
Можно получить текущий stacktrace и взять из него нужный элемент:
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
System.out.println(stackTrace[2].getMethodName());
Для полного примера
public class ONE
{
public static void A()
{
TWO.B();
}
public static void C()
{
TWO.B();
}
}
public class TWO
{
public static void B()
{
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
System.out.println(stackTrace[2].getMethodName());
}
}
public static void main(String[] args)
{
ONE.A();
ONE.C();
}
Вывод:
A
C
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники