JavaRush/Помощь по Java задачам/Объясните почему везде должно быть [2] ?????Artur Iskandarov20 уровень13.06.2019813просмотров8комментариевОбъясните почему везде должно быть [2] ?????Вопрос по задаче И снова StackTrace Java Syntax, 9 уровень, 2 лекция Решен Задачу то я решил.Код не могу прикрепить В чем прикол этой 2- йки ? return stackTraceElements[2].getMethodName(); 0 Комментарии (8)популярныеновыестарыеДля того, чтобы оставить комментарий Вы должны авторизоватьсяArtyom PopovУровень 4013 июня 2019, 13:43решениеstackTraceElements[0].getMethodName() - всегда будет getStackTrace. stackTraceElements[1].getMethodName() - узнаем имя метода в котором мы. stackTraceElements[2].getMethodName() - узнаем имя метода который вызвал данный метод. +13 IceBergУровень 41Master13 июня 2019, 13:42Поставь весь stackTraceElements на вывод, там наглядно всё будет видно. 0 Artur IskandarovУровень 2013 июня 2019, 13:52так я поставил.ВЫшло main main ..... 0 IceBergУровень 41Master13 июня 2019, 14:04Как это у тебя main вызывает main, с кодом там всё в порядке? И в каком методе ты стек просматриваешь? 0 Artur IskandarovУровень 2013 июня 2019, 14:47public static void main(String[] args) throws Exception { method1(); } public static String method1() { method2(); StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); return stackTraceElements[2].getMethodName(); } public static String method2() { method3(); StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); return stackTraceElements[2].getMethodName();//напишите тут ваш код } public static String method3() { method4(); StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); return stackTraceElements[2].getMethodName();//напишите тут ваш код } public static String method4() { method5(); StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); return stackTraceElements[2].getMethodName();//напишите тут ваш код } public static String method5() { StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); return stackTraceElements[2].getMethodName();//напишите тут ваш код } } 0 IceBergУровень 41Master13 июня 2019, 14:49Так а вывод где у тебя? 0 Artur IskandarovУровень 2013 июня 2019, 14:53я его убрал.Потому что из за писанины(Sout.....) Валидатор не принимал решение. 0 IceBergУровень 41Master13 июня 2019, 14:56Как же тогда помочь, не видя проблемы. Вот поставь такой вариант посмотриpublic static String method5() { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); for (StackTraceElement s : stackTrace) { System.out.println(s); } return Thread.currentThread().getStackTrace()[2].getMethodName(); } 0