Java调用栈

简介:

需求:二方库被哪些应用调用?包括方法的调用栈、类的调用栈等

思路:获取StackTraceElement元素,可以通过Throwable, Error类等

Sample代码:

 
  1. class Sample01 { 
  2.     public static void demo01() { 
  3.         Throwable throwable = new Throwable("initial"); 
  4.         StackTraceElement[] traceElements = throwable.getStackTrace(); 
  5.         for (StackTraceElement traceElement : traceElements) { 
  6.             System.out.println(traceElement.getClassName() + ", " + traceElement.getLineNumber()); 
  7.         } 
  8.     } 
  9.  
  10. class Sample02 { 
  11.     private static Logger logger = LoggerFactory.getLogger(Sample02.class); 
  12.  
  13.     public void demo02() { 
  14.         try { 
  15.             Sample01.demo01(); 
  16.  
  17.         } catch (Exception e) { 
  18.             logger.error("hello", e); 
  19.         } 
  20.     } 

补充:StackTraceElement数组的内容有顺序,属于栈结构。第0个元素表示自己,第1个元素表示第一个调用者,...。从1开始输出,则可以不用输出自己的调用。

测试:

 
  1. public static void main(String[] args) { 
  2.        new Sample02().demo02(); 
  3.    } 

测试结果:

 
  1. com.alibaba.Sample01, 83 
  2. com.alibaba.Sample02, 96 
  3. com.alibaba.Hello, 77 

 


本文转自 zhouhaipeng 51CTO博客,原文链接:http://blog.51cto.com/tianya23/754515,如需转载请自行联系原作者


相关文章
|
Java
java使用Quartz任务调用crontab表达式的时候报错:Based on configured schedule, the given trigger will never fire
java使用Quartz任务调用crontab表达式的时候报错:Based on configured schedule, the given trigger will never fire
404 0
java使用Quartz任务调用crontab表达式的时候报错:Based on configured schedule, the given trigger will never fire
|
Java 开发工具 C++
Java调用虹软SDK的错误
Java调用虹软SDK的错误
494 0
|
Java
UOS系统JAVA应用在任务栏显示类名的问题跟踪调用
UOS系统JAVA应用在任务栏显示类名的问题跟踪调用
74 0
|
Java Python
Python:jpype模块调用Java函数
Python:jpype模块调用Java函数
81 0
|
算法 Java Go
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解(下)
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解(下)
|
算法 Java 决策智能
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解(中)
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解(中)
|
算法 Java Go
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解(上)
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解
运筹优化学习21:Java调用Cplex实现求解Cuting Stock Porblem的列生成算法详解(上)
|
Java C# 决策智能
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(下)
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(下)
|
Java 测试技术 C#
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(上)
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex
运筹优化学习09:一个示例带你入门如何使用C++、C#、Java、Python、Matlab调用Cplex(上)