1 вариант решения не прошел, а 2 прошел - какую роль в данном коде играет слово length ?
1). int a = Thread.currentThread().getStackTrace();
System.out.println(a);
return a;
2). int a = Thread.currentThread().getStackTrace().length;
System.out.println(a);
return a;
Jenya
10 уровень
обьясните пожалуйста
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Микита
10 февраля 2021, 13:48
В задаче спрашивали ГЛУБИНУ стек-трейса. При каждом вызове следующего метода в стек-трейс будет дописываться елемент. Соответственно чтобы правильно решить задачу нужно найти количество элементов в стек-трейсе. Сначала с помощью .getStackTrace() мы получаем сам стек (обьект), а потом с помощью .length нужно узнать количество элементов в нем.
Причем обратите внимание - .length и .length() - разные вещи. Первое - поле - известная длина объекта (например массивы имеют данное поле), в то время как второе - метод, чаще вызывается для ПОДСЧЕТА размера String.
+1
Vasili
5 февраля 2021, 17:35
length связан с типом переменной, возвращаемой методом getStackTrace(). Нажми в IDE на getStackTrace(), посмотри какой тип он возвращает.
0
Pavel Smirnov
5 февраля 2021, 17:30
length - возвращает int. а без него возвращается массив стекатрейса элементов.
Массив нельзя записать в int)
+1