Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取类中方法的行号和方法名称_Java_Android - Fatal编程技术网

Java 获取类中方法的行号和方法名称

Java 获取类中方法的行号和方法名称,java,android,Java,Android,我正在android中开发自定义日志组件,我想获取方法名、行号和类名,我尝试使用StackTraceElement,但我只能从调用它的位置获取方法名和行号,StackTraceeElement的作用域仅在调用它的方法内,但我需要打印类中所有方法的方法名和行号,有人能帮我这样做吗?有关类名 this.getClass().getName(); 应该足够了 我找到的行号 Thread.currentThread().getStackTrace()[1].getLineNumber(); 方法是

我正在android中开发自定义日志组件,我想获取方法名、行号和类名,我尝试使用StackTraceElement,但我只能从调用它的位置获取方法名和行号,StackTraceeElement的作用域仅在调用它的方法内,但我需要打印类中所有方法的方法名和行号,有人能帮我这样做吗?

有关类名

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。