获取方法调度堆栈的信息

java在允许期间可以通过Throwable类来获取方法调用堆栈信息;

部分方法如下:

     Throwable e = new Throwable();
        StackTraceElement[] stacks = e.getStackTrace();
        if(stacks != null){
            for(int i=0;i<stacks.length;i++){
                System.out.println(stacks[i].getClassName());
                System.out.println(stacks[i].getFileName());
                System.out.println(stacks[i].getLineNumber());
                System.out.println(stacks[i].getMethodName());
                System.out.println("------------------------------------");
            }
        }

原文地址:https://www.cnblogs.com/biabiabia/p/10018978.html

时间: 2024-10-11 05:31:55

获取方法调度堆栈的信息的相关文章

【转】StackTraceElement获取方法调用栈的信息

本文链接:https://blog.csdn.net/hp910315/article/details/52702199 一.什么是StackTrace StackTrace(堆栈轨迹)存放的就是方法调用栈的信息,异常处理中常用的printStackTrace()实质就是打印异常调用的堆栈信息. 二.StackTraceElement介绍 StackTraceElement表示StackTrace(堆栈轨迹)中的一个方法对象,属性包括方法的类名.方法名.文件名以及调用的行数. public fi

java如何获取方法参数名

在java中,可以通过反射获取到类.字段.方法签名等相关的信息,像方法名.返回值类型.参数类型.泛型类型参数等,但是不能够获取方法的参数名.在实际开发场景中,有时需要根据方法的参数名做一些操作,比如像spring-mvc中,@RequestParam.@PathVariable注解,如果不指定相应的value属性,默认就是使用方法的参数名做为HTTP请求的参数名,它是怎么做到的呢? 在这样情况下,有两种方法获取方法来解决这种需求,第一种方法是使用注解,在注解中指定对应应的参数名称,在需要使用参数

反射之获取方法信息

本文接上文"反射之Class类的使用",以编写一个用来获取类的信息(成员函数.成员变量)的工具类来讲解"反射之获取方法信息" 1.新建工具类,命名ClassUtil,输入一个对象(Object),输出该对象的基础信息方法(printClassMessage) 1 /** 2 * 打印类的信息,成员函数.成员变量 3 * Created by Format on 2017/6/3. 4 */ 5 public class ClassUtil { 6 7 } 2.获取类

Java-反射之获取方法信息

简单地学习了一下Java的反射机制和Class类,我们就可以通过这种方式来获取一个类的详细信息. 1.获得基本数据类型和简单的类的类类型 1 public static void main(String[] args) { 2 Class c1 = int.class; // 拿到int的类类型 -- 相当于是int字节码 3 Class c2 = Integer.class; //Integer的类类型--与上面的int是不一样的 4 Class c3 = Void.class; 5 Syst

AspectJ获取方法注解的信息

在使用Aspectj获取方法注解信息的时候,可以使用下面的代码片段: /** * Get value of annotated method parameter */ private <T extends Annotation> T getMethodAnnotation(ProceedingJoinPoint joinPoint, Class<T> clazz) { MethodSignature methodSignature = (MethodSignature) joinP

Java 反射理解(三)-- Java获取方法信息

Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void main(String[] args) { Class c1 = int.class;//int 的类类型 Class c2 = String.class;//String类的类类型,可以理解为String类字节码 Class c3 = double.class; Class c4 = Doubl

Java之反射机制六:获取方法的泛型信息

一.测试类 public class Test02 { public void parameterTest(Map<Integer, Dog> map){ } public Map<Integer,Dog> returnTest(){ return new HashMap<Integer, Dog>(); } } 二.获取方法的参数中的泛型信息 @Test //获取方法的参数中的泛型信息 public void test() throws NoSuchMethodExc

Swift进阶之内存模型和方法调度

前言 Apple今年推出了Swift3.0,较2.3来说,3.0是一次重大的升级.关于这次更新,在这里都可以找到,最主要的还是提高了Swift的性能,优化了Swift API的设计(命名)规范. 前段时间对之前写的一个项目ImageMaskTransition做了简单迁移,先保证能在3.0下正常运行,只用了不到30分钟.总的来说,这次迁移还是非常轻松的.但是,有一点要注意:3.0的API设计规范较2.3有了质变,建议做迁移的开发者先看下WWDC的Swift API Design Guidelin

获取代码所在的位置信息

要实现获取代码所在的位置信息的功能, 类System.Diagnostics.StackFrame是关键,源码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Diagnostics; //需要知道源码位置 6   7 namespace ConsoleApplication1 8 { 9     class Progra