Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > как определить в методе откуда его вызвали?


Автор: Sleepy_PIP 28.1.2010, 17:20
Подскажите пожалуста - как определить класс (Class), метод которого вызвал метод из другого класса в методе этого самомого другого класса 

типа:
public MyClass1
{
 public void methodC1()
{
   MyClass2 c2=new MyClass2();
   c2.methodC2();
}
}

public MyClass2
{
 public void methodC2()
{
   System.out.println("вызвано из:" ?????????); 
}
}


Спасибо!!

Автор: LSD 28.1.2010, 17:23
Код

        final StackTraceElement[] stackTraceElements = new Exception().getStackTrace();
        if(stackTraceElements.length > 2) {
            System.out.println(stackTraceElements[1]);
        }

Автор: MaxPayneC 28.1.2010, 19:34
А получить стек трейс, не создавая эксепшн, невозможно?

Автор: LSD 29.1.2010, 12:25
Нет. А в чем проблема с созданием Exception-а?

Автор: MaxPayneC 29.1.2010, 13:09
Не знаю даже.. чем-то не нравится метод, но не могу объяснить чем smile

Автор: comcon1 29.1.2010, 13:18
А метод this.getClass() не подойдет?

Автор: LSD 29.1.2010, 14:03
Цитата(comcon1 @  29.1.2010,  13:18 Найти цитируемый пост)
А метод this.getClass() не подойдет? 

Он вернет MyClass2, а должен MyClass1.methodC1().

Автор: comcon1 29.1.2010, 14:06
Ааааа... все, туплю. Неправильно прочитал. Thread.dumpStack еще есть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)