RuntimeException().getStackTrace()的使用

本文通过阅读SpringBoot源码,探讨了RuntimeException().getStackTrace()方法如何用于追踪执行流程中的类。作者展示了本地测试代码,通过一个简单的Student类调用示例,展示了获取调用栈中方法名的过程,输出了调用栈信息。文章鼓励对这一主题感兴趣的读者留言交流。
摘要由CSDN通过智能技术生成

今天阅读spring boot源码发现一句:
RuntimeException().getStackTrace();
作用是推断出当前执行流中的某个类。可以发现获取的值都是调用栈的方法名。本地测试了一下,代码如下:

public static void main(String[] args) throws Exception{
        StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
        Student student = new Student();
        student.buyMac(123123);
     }

public class Student implements Person {

    private final static int nextId = 1;
    private int id;
    @Override
    public void buyMac(double money){
        StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
        System.out.println("学生买了mac");
        System.out.println("学生花了"+money);
    }

    @Override
    public void takeSubWay(double money){
        System.out.println("学生花"+money+"坐车回家");
    }

    @Override
    public void atHome(){
        System.out.println("到家");
    }

    public void setId(){
        id = nextId;
        //nextId++;
    }

    public int getId() {
        return id;
    }

    public static int getNextId() {
        return nextId;
    }
}

public interface Person {
    public void buyMac(double money);
    public void takeSubWay(double money);
    public void atHome();
}

可以看到返回值如下:
在这里插入图片描述
本来想再深入写一点,但是觉得花时间多了反而容易使自己迷糊,所以就这样了吧。有兴趣的可以留言,一起探讨下。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值