Данный код возвращает значения
method4 28
Объясните, пожалуйста, почему? Ведь metod4 начинается в строке 27, а вызван из строки 23, откуда 28 берется?
Если переделать код на единицы в квадратных скобках
System.out.println(elem[1].getMethodName() + " " + elem[1].getLineNumber());
то вернет
method5 33
Но ведь Method5 вызывается в 28 строчке, а 33-я строка - это уже getStackTrace().
Решить задачу нетрудно, в какую сторону двигать нумератор - понятно, но понять логику getLineNumber() не могу.
Artem
40 уровень
Объясните логику метода.
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #1278682
17 декабря 2017, 04:25
Как я понял, getlinenumber возвращает строку, из которой метод вызывает следующий метод.
+1
Artem
17 декабря 2017, 09:44
Спасибо, вполне возможно что так)
Но тогда возникает другой вопрос: Если написать код с нулевыми элементами массива System.out.println(elem[0].getMethodName() + " " + elem[0].getLineNumber());
то вернет
getStackTrace 1556
Что такое 1556, если в коде всего 40 строк?)
0
--------Master
17 декабря 2017, 09:51полезный
Попытался наглядно показать))
+1
hidden #1278682
17 декабря 2017, 10:15решение
это не возможно, это в официальной документации: "This method returns the line number of the source line containing the execution point represented by this stack trace element, or a negative number if this information is unavailable." Откуда берутся еще дополнительные строки - я не знаю
+2
vinslerExpert
16 декабря 2017, 22:59
Если это то задание про стек, то функцию ты не ту используешь.
Под element. подразумевается элемент из стека, наверно.
+6