Вот нашел интересный пример метода, который определяет с какой линии кода его вызвали.
Логика поиска строки из которой вызван метод, реализована на анализе данных исключения, вызываемого методом. В связи с использованием исключения, быстродействие желает лучшего.
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: }
Комментариев нет:
Отправить комментарий