среда, 13 апреля 2011 г.

Метод знающий с какой строки кода его вызвали.

Вот нашел интересный пример метода, который  определяет с какой линии кода его вызвали.

Логика поиска строки из которой вызван метод, реализована на анализе данных исключения, вызываемого методом. В связи с использованием исключения,  быстродействие  желает лучшего.

   1: public class Main {
   2:  public static void Main(String[] args) {
   3:      f0();//запуск функции f0() со строки 3
   4:      f0();//запуск функции f0() со строки 4
   5:  }
   6:  
   7:  public static void f0(){
   8:      System.out.println("Привет, я функция f0");
   9:      Exception e = new Exception();// запуск исключения
  10:      if(e.getStackTrace()[1].getLineNumber()==3){
  11:          f1();
  12:      } else if(e.getStackTrace()[1].getLineNumber()==4){
  13:             f2();
  14:      } // анализ данных исключения
  15:  }
  16:  
  17:     public static void f1(){
  18:         System.out.println("Привет, я функция f1");
  19:     }
  20:     public static void f2(){
  21:         System.out.println("Привет, я функция f2");
  22:     }
  23: }

Комментариев нет:

Отправить комментарий