1.获取当前运行代码的类名,方法名,行号,主要是通过java.lang.StackTraceElement类 2. [1]获得调用者的方法名, 同new Throwable String _methodName = new Exception().getStackTrace()[1].getMethodName(); [0]获得当前的方法名, 同new Throwable String _thisMethodName = new Exception().getStackTrace()[0].getMethodName(); public class StackTraceElementTest { public static void main(String[] args) { System.out.println("line1: " + new Throwable().getStackTrace()[0].getLineNumber()); System.out.println("line2: " + getLineInfo()); System.out.println("line3: " + getTraceInfo()); StackTraceElement ste1 = null; StackTraceElement[] steArray = Thread.currentThread().getStackTrace(); int steArrayLength = steArray.length; String s = null; // output all related info of the existing stack traces if(steArrayLength==0) { System.err.println("No Stack Trace."); } else { for(int i=0; i<steArrayLength; i++){ System.out.println("Stack Trace-" + i); ste1 = steArray[i]; s = ste1.getFileName() + ": Line " + ste1.getLineNumber(); System.out.println(s); } } } } public static String getTraceInfo(){ StringBuffer sb = new StringBuffer(); StackTraceElement[] stacks = new Throwable().getStackTrace(); int stacksLen = stacks.length; sb.append("class: " ).append(stacks[1].getClassName()) .append("; method: ").append(stacks[1].getMethodName()) .append("; number: ").append(stacks[1].getLineNumber()); return sb.toString(); } public static String getLineInfo() { StackTraceElement ste = new Throwable().getStackTrace()[1]; return ste.getFileName() + ": Line " + ste.getLineNumber(); } }
java获取当前运行代码的类名、方法名、行号
精选 转载上一篇:Mybatis多参数查询映射
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java获取调用者的方法名称 java获取当前执行的方法名
java获取当前运行的方法名称
java获取调用者的方法名称 java 数组 方法名 html