Last active
October 19, 2016 12:20
-
-
Save josinSbazin/896dea893eea0944ad10abb24eefcefc to your computer and use it in GitHub Desktop.
level09.lesson02.task02
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javarush.test.level09.lesson02.task02; | |
/* И снова StackTrace | |
Написать пять методов, которые вызывают друг друга. Каждый метод должен возвращать имя метода, вызвавшего его, полученное с помощью StackTrace. | |
*/ | |
public class Solution { | |
public static void main(String[] args) throws Exception { | |
method1(); | |
System.out.println(method1()); | |
System.out.println(method2()); | |
System.out.println(method3()); | |
System.out.println(method4()); | |
System.out.println(method5()); | |
} | |
public static String method1() { | |
method2(); | |
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код | |
} | |
public static String method2() { | |
method3(); | |
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код | |
} | |
public static String method3() { | |
method4(); | |
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код | |
} | |
public static String method4() { | |
method5(); | |
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код | |
} | |
public static String method5() { | |
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код | |
} | |
} |
решение не верное, вывод работы программы:
main
main
main
main
main
уже в который раз смотрю на гите, тут очень часто выкладывают то что не работает
public class Solution
{
public static void main(String[] args) throws Exception
{
method1();
}
public static String method1()
{
method2();
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
return stackTraceElement[2].getMethodName();
}
public static String method2()
{
method3();
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
return stackTraceElement[2].getMethodName();
}
public static String method3()
{
method4();
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
return stackTraceElement[2].getMethodName();
}
public static String method4()
{
method5();
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
return stackTraceElement[2].getMethodName();
}
public static String method5()
{
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
return stackTraceElement[2].getMethodName();
}
}
собственно вот верное решение.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Решение верное, но не очень понимаю. В условии указано "Каждый метод должен возвращать имя метода, вызвавшего его". Т.е. по логике вещей, например, метод 4 должен возвращать имя метода 3, т.к. метод 4 вызывается в методе 3? А здесь получается, что все методы вызывает метод мейн непосредственно...