首页 > 编程语言 >Java获取方法的调用者

Java获取方法的调用者

时间:2024-02-07 14:22:06浏览次数:31  
标签:stackTraceElements printCallingInfo Java 调用者 void 获取 static 方法

public static void main(String[] args) {
        method1();
    }

    static void method1() {
        method2();
    }

    static void method2() {
        method3();
    }

    static void method3() {
        printCallingInfo();
    }

    static void printCallingInfo() {
        // 第一个为当前线程,第二个为当前方法,第三个为调用方法...(依次套娃)
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        if (stackTraceElements.length >= 3) {
            System.out.println("printCallingInfo方法被" + stackTraceElements[2].getClassName() + "类的" + 										stackTraceElements[2].getMethodName() + "方法调用");
        } else {
            System.out.println("没有足够的堆栈跟踪元素");
        }
    }

标签:stackTraceElements,printCallingInfo,Java,调用者,void,获取,static,方法
From: https://www.cnblogs.com/wywblogs/p/18010896

相关文章

  • Python 获取相对路径
    想要获取当前文件的路径,通常我的做法是os.path.abspath(__file__)如果想要获取当前文件的所在文件夹,通常的做法是os.path.dirname(__file__)但是更多的时候,我想获取当前所在文件的父目录的父目录,做法可以是os.path.dirname(os.path.diranme(__file__))或path=os.path......
  • Java学习的知识笔记
    不会改变原始对象的方法reverse函数,作用:排序使用小技巧判断string是否相等可以使用equals来进行判断。判断string是否是空字符串可以用isBlank()进行判断对于超大的整数加减使用对应的函数进行操作,比如加,使用add函数参考bignum.java因为math类的构造方法是private修饰,所以......
  • 盘点Java集合(容器)概览,Collection和Map在开发中谁用的最多?
    写在开头在Java的世界里万物皆对象。但我认为是万物皆数据,世界由各种各样数据构建起来,我们通过程序去实现数据的增删改查、转入转出、加减乘除等等,不同语言的实现方式殊途同归。由此可见,数据对于程序语言的重要性。这段话是在写数据类型那篇博客时说的,当时是为了引入Java中数据......
  • JUnit实践教程——Java的单元测试框架
    前言大家好,我是chowley,最近在学单元测试框架——JUnit,写个博客记录一下!在软件开发中,单元测试是确保代码质量和稳定性的重要手段之一。JUnit作为Java领域最流行的单元测试框架,为开发人员提供了简单、灵活和强大的测试工具。JUnit1.简介JUnit是一个开源的Java单元测试框架,最初由......
  • python怎么调用支持java的接口
    在Python编程中,有时候需要调用支持Java的接口,以实现与Java程序的交互和功能扩展。本文将介绍如何在Python中调用支持Java的接口,以实现跨语言的开发和集成。一、背景知识在Python中,我们可以使用JPype库来实现Python与Java之间的交互。JPype是一个Python模块,提供了Python与Java之间的......
  • JavaScript 的实际应用
    1. WebWizardry:从表单验证到交互。地图、JavaScript使网页变得栩栩如生,将静态内容转变为动态体验。2. MobileMagic:得益于ReactNative和Ionic等框架,JavaScript不再仅仅局限于浏览器。它正在向移动应用程序开发领域展开翅膀,将其魔力带入iOS和Android。3.游戏开始:?借......
  • 【Java核心基础】揭秘Iterable接口和Iterator接口的核心区别!
    在Java中,Iterable接口和Iterator接口都用于遍历集合(Collection)中的元素,但它们的使用方式和功能有所不同。官方文档传送门:https://docx.iamqiang.com/jdk11/api/java.base/java/lang/Iterable.htmlhttps://docx.iamqiang.com/jdk11/api/java.base/java/util/Iterator.html核心......
  • Mybatis Plus java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.
    问题描述在进行SpringBoot整合MybatisPlus时提示10:49:08.390[restartedMain]DEBUGorg.springframework.boot.context.logging.ClasspathLoggingApplicationListener-Applicationfailedtostartwithclasspath:[file:/D:/%e7%99%be%e5%ba%a6%e7%bd%91%e7%9b%98/Vue......
  • Java新建一个子线程异步运行方法
    如何在运行主方法的同时异步运行另一个方法,我是用来更新缓存;1.工具类publicclassThreadPoolUtils{privatestaticfinalLoggerLOGGER=LoggerFactory.getLogger(ThreadPoolUtils.class);privatestaticfinalStringPOOL_NAME="thread-im-runner";//......
  • 【JAVA】JavaSEの歴史(1.6~17)
    Start ■Jdk1.6〜8、追加のクラス又は新しい機能(1)Lambda//JDK1.6newThread(newRunnable(){publicvoidrun(){System.out.println("Hello,World!");}}).start();//JDK8newThread(()->System.out.println("Hello,World!"))......