Как решать задачу мне понятно.
Но пока совершенно не понятен сам метод getLineNumber(). Кто-нибудь может объяснить доходчиво, что он делает? Почему, например, если я пропишу в любом из методов строку:
System.out.println(Thread.currentThread().getStackTrace()[0].getLineNumber());
мне выведется 1559?
В документации написано, что данный метод "возвращает номер строки исходной строки, содержащей точку выполнения, представленную этим микроэлементом стека", но я не совсем понимаю, что это значит.
Светлана
13 уровень
Что делает метод getLineNumber()?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Nikita Mazanik
2 июля 2020, 07:59
метод getLineName() возвращает номер строки, а индекс метода getStackTrace()[индекс], указывает номер какой строки метода ему возвращять.
индекс:
0 - возвращает номер строки getStackTrace(), не знаю почему именно 1559, видимо значение по умолчанию.
-------------------- пример ---------------------
строка 10 method1
строка 20 method2
строка 30 method3
.... getStackTrace()[0].getLineName();
возвращает: 1559
1 - возвращает номер строки метода который вызвал метод, который в свою очередь вызвал текущий метод.
-------------------- пример ---------------------
строка 10 method1
строка 20 method2
строка 30 method3
.... getStackTrace()[1].getLineName();
возвращает: 10
2 - возвращает номер строки метода который вызвал текущий метод
-------------------- пример ---------------------
строка 10 method1
строка 20 method2
строка 30 method3
.... getStackTrace()[2].getLineName();
возвращает: 20
3 - возвращает номер строки текущего метода
-------------------- пример ---------------------
строка 10 method1
строка 20 method2
строка 30 method3
.... getStackTrace()[3].getLineName();
возвращает: 30
+7
Светлана
8 июля 2020, 19:17
Спасибо, стало чуть понятнее
0