StackTraceElement
StackTraceElement存储了java代码堆栈调用轨迹,通过这个对象可以获取调用栈中的调用过程信息,包括类名、方法名、文件名、调用行数等
public class test1 {
public static void getInfo() {
StackTraceElement stack[] = (new Throwable()).getStackTrace();
for (int i = 0; i < stack.length; i++) {
StackTraceElement s = stack[i];
System.out.format(" ClassName:%d\t%s\n", i, s.getClassName());
System.out.format("MethodName:%d\t%s\n", i, s.getMethodName());
System.out.format(" FileName:%d\t%s\n", i, s.getFileName());
System.out.format("LineNumber:%d\t%s\n\n", i, s.getLineNumber());
}
}
}
public class domain {
public static void main(String[] args) {
MoniSVC m = new MoniSVC();
CodeResult a = m.getCode("travelsky");
System.out.println("result:" + a);
}
}
运行domain函数调用test1的getInfo函数打印StackTraceElement堆栈信息显示如下:
ClassName:0 test1
ClassName:0 test1
MethodName:0 getInfo
FileName:0 test1.java
LineNumber:0 4
ClassName:1 domain
MethodName:1 main
FileName:1 domain.java
LineNumber:1 4