Давайте сразу перейдем к делу: напишите 5 методов, которые вызывают друг друга. Каждый метод должен возвращать имя метода, вызвавшего его, полученное с помощью StackTrace. Это имя — дальше, чем звезды. Но мы разберемся, это всего-навсего методы, которые последовательно вызывают друг друга, и ничего более.
И снова StackTrace
- 6
Недоступна
Комментарии (230)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ihor
3 августа, 04:59
Что означает [2]?
0
Александр Чернобаев-Чернобай
31 июля, 10:46
Можете вот тут почитать.
0
Евгений
5 мая, 06:14
Мне очень помог комментарий Ярослава, от 18го года, к этой задаче. https://javarush.ru/users/1173070
Но все же осмысления как и что происходит не пришло. Тогда я сделал следующее:
В класс добавил счетчик. Счетчик инкрементирую в каждом методе. А далее, начиная с 5го метода, понемногу накидывая выводы в консоль, пришел к следующему:
Каждый вновь вызванный метод добавляется в стэк, читай массив, под индексом 1. Ибо методы двигаются при добавлении нового. Запустили программу - автоматом создался массив StackTrace, метод getStackTrace() зашел в массив под индексом 0 и более никуда не двигается. Далее, зашел метод main - индекс 1, затем зашел method1 - индекс 1, main подвинулся на 2ой. И так далее. Счетчик же растёт начиная с последнего зашедшего метода.
Попробуйте, возможно поможет кому-то.
Почему getStackTrace() не двигается - так я и не понял. 0
Евгений N
18 апреля, 20:03
если в решении заменить method2(); на System.out.println( method2() ); и т.д.
задача станет нагляднее. Валидацию проходит.
0
Денис
17 февраля, 13:53
массив[0] - это и есть сам стэктрайс, [1] - это метод в котором находится стэктрейс, а вот [2] это имя метода который его вызвал
return Thread.currentThread().getStackTrace()[Х].getMethodName();
Чтобы понять что от нас требуется, поиграйтесь со значениями X
+1
Neonila Kravtcova
25 ноября 2021, 09:22
Это была задача Hard для меня. Зато кое-что прояснилось, спасибо.
0
Дима
1 августа 2021, 09:52
Для меня самое сложное, это перебороть себя и зайти в коменты под задачей, за объясненьями, после чего всё кажется простым)) Но как же хочется просто открыть задачу и просто написать код правильно(((
+2
gypsy potassium
14 сентября 2021, 17:28
перебороть себя и НЕ заходить в каменты до последнего
0
Neonila Kravtcova
25 ноября 2021, 09:23
Это был последний коммент, дальше которого я не пошла ))
+1
Rodion
14 апреля 2021, 20:32
Прекрасный пример задачи, где теория идет бок о бок с практикой.
0
Михаил
16 марта 2021, 21:49
Было сложновато но я справился, что бы понять как оно работает я в каждом методе выводил номер массива на экран вот так :
гит хаба
тут прям совсем по полочкам
и выяснил что массив[0] - это и есть сам стэктрайс, [1] - это метод в котором находится стэктрейс, а вот [2] это имя метода который его вызвал.
Ну и если совсем туго с этим моментом вот объяснение с +27
Yolkovich покаещеназаводе
9 июня 2021, 23:50
максимум пользы от гитхабовской статьи будет если скопировать ее в IDE и поиграться с ней, у меня сложилась вся картинка.
+2
w0e666
22 февраля 2021, 20:38
+2