Java 获取类中方法的行号和方法名称
我正在android中开发自定义日志组件,我想获取方法名、行号和类名,我尝试使用StackTraceElement,但我只能从调用它的位置获取方法名和行号,StackTraceeElement的作用域仅在调用它的方法内,但我需要打印类中所有方法的方法名和行号,有人能帮我这样做吗?有关类名Java 获取类中方法的行号和方法名称,java,android,Java,Android,我正在android中开发自定义日志组件,我想获取方法名、行号和类名,我尝试使用StackTraceElement,但我只能从调用它的位置获取方法名和行号,StackTraceeElement的作用域仅在调用它的方法内,但我需要打印类中所有方法的方法名和行号,有人能帮我这样做吗?有关类名 this.getClass().getName(); 应该足够了 我找到的行号 Thread.currentThread().getStackTrace()[1].getLineNumber(); 方法是
this.getClass().getName();
应该足够了
我找到的行号
Thread.currentThread().getStackTrace()[1].getLineNumber();
方法是
Thread.currentThread().getStackTrace()[1].getMethodName()
记住从类名称的getStackTrace()
中访问数组中的正确元素
this.getClass().getName();
应该足够了
我找到的行号
Thread.currentThread().getStackTrace()[1].getLineNumber();
方法是
Thread.currentThread().getStackTrace()[1].getMethodName()
记住,对于使用相同查询的任何一个新访问,从
getStackTrace()
访问数组中的正确元素,
Java9和更高版本有额外的功能,仅用于此目的,称为
列表堆栈=
StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).walk((s)->
s、 collect(Collectors.toList());
System.out.println(“所有帧:\n”+stack.toString());
另请参阅
对于使用相同查询的任何新访问, Java9和更高版本有额外的功能,仅用于此目的,称为
列表堆栈=
StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).walk((s)->
s、 collect(Collectors.toList());
System.out.println(“所有帧:\n”+stack.toString());
另请参阅
对于类名,您可以使用getClass()在堆栈跟踪中有几个StackTraceeElement。对于类名,您可以使用getClass()在堆栈跟踪中有几个StackTraceeElement。