CodeGym
促销活动
CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
问题
  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 全部问题
PeaceLovePang
第 14 级
Warrington
  • 02.06.2020
  • 901次阅读
  • 6个评论

I don't know anything about stack tracing, and this problem took a long time to solve, so please help me.

有关 任务的问题 重访堆栈跟踪
Java 语法,  第 9 级,  课程 2
已解决


写出相互调用的五种方法。
每个方法都应返回调用它的方法的名称。使用堆栈跟踪获取此信息。

要求:
  • 这一类应该有 5 个方法(除了 main 方法之外)。
  • 每个方法都应调用下一个方法:main 方法调用 method1,method1 调用 method2,依此类推。
  • 每个方法必须返回调用它的方法的名称。
  • 要获取调用方法的名称,请使用 getMethodName 方法。
package zh.codegym.task.task09.task0902; /* 重访堆栈跟踪 */ public class Solution { public static void main(String[] args) throws Exception { method1(); } public static String method1() { method2(); //在此编写你的代码 String a=null; StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTraceElements) { a=element.getMethodName(); //System.out.println(a); } return a; } public static String method2() { method3(); //在此编写你的代码 String a=null; StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTraceElements) { a=element.getMethodName(); //System.out.println(a); } return a; } public static String method3() { method4(); //在此编写你的代码 String a=null; StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTraceElements) { a=element.getMethodName(); //System.out.println(a); } return a; } public static String method4() { method5(); //在此编写你的代码 String a=null; StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTraceElements) { a=element.getMethodName(); //System.out.println(a); } return a; } public static String method5() { //在此编写你的代码 String a=null; StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTraceElements) { a=element.getMethodName(); //System.out.println(a); } return a; } }
0
评论 (6)
  • 受欢迎
  • 新
  • 旧
你必须先登录才能发表评论
mauricio
级别 1 ,United States
26 十月 2021, 04:48
how this woks
0
Boreas
级别 17 ,China
23 十月 2021, 14:57
thank you
0
Max Boom
级别 18 ,Zlin,Czech Republic
2 六月 2020, 12:23解决方法
StackTraceElement[] stackTraceElement=Thread.currentThread().getStackTrace(); String a= stackTraceElement[2].getMethodName(); // System.out.println(a); return a;
+11
Max Boom
级别 18 ,Zlin,Czech Republic
2 六月 2020, 12:26
stackTraceElement[0].getMethodName(); name: getStackTrace stackTraceElement[1].getMethodName(); name: 他自己的名称 stackTraceElement[2].getMethodName() name: 调用它的方法的名称
+3
PeaceLovePang
级别 14 ,Warrington,United Kingdom
2 六月 2020, 15:32
Thanks for your help. I know better.
0
alittleblank
级别 9 ,Hefei,China
13 七月 2020, 16:53
Why could only these numbers be right?Could be more specific explanation, thx a lot.
0
了解
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • 游戏项目
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 活动
  • Affiliate Program
公司
  • 关于我们
  • 联系方式
  • 评论
  • 新闻发布室
  • CodeGym 教育
  • 常见问题
  • 支持
CodeGym CodeGym 是一个从零开始学习 Java 语言编程的在线课程。本课程是初学者掌握 Java 语言的绝佳方式。它包含 1200 多个可即时验证的任务,以及基本范围内的 Java 基础理论。为了帮助你在教育上取得成功,我们实现了一组激励功能:小测验、编码项目以及有关高效学习和 Java 语言开发人员职业方面的内容。
关注我们
界面语言
程序员不是天生的 © 2023 CodeGym
MastercardVisa
程序员不是天生的 © 2023 CodeGym
This website uses cookies to provide you with personalized service. By using this website, you agree to our use of cookies. If you require more details, please read our Terms and Policy.