andriod 获取当前函数名
来源:互联网 发布:java随机数组生成 编辑:程序博客网 时间:2024/05/22 07:00
缘由
开发输出Log时经常会打印当前函数,于是就在网上查找相应的方法, 自己也总结了下:
直接上代码:
public class Utils { private static final int STACK_TRACE_INDEX = 3; private static final String SUFFIX = ".java"; public static String getHeadSuffix() { try{ //获取调用的函数堆栈信息 StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); StackTraceElement targetElement = stackTrace[STACK_TRACE_INDEX]; //获取类名 String className = targetElement.getClassName(); String[] classNameInfo = className.split("\\."); if (classNameInfo.length > 0) { className = classNameInfo[classNameInfo.length - 1] + SUFFIX; } //获取内部类 if (className.contains("$")) { className = className.split("\\$")[0] + SUFFIX; } //获取当前方法名 String methodName = targetElement.getMethodName(); //获取当前行号 int lineNumber = targetElement.getLineNumber(); if (lineNumber < 0) { lineNumber = 0; } //输出信息 StringBuffer sb = new StringBuffer(); sb.append(methodName.substring(0, 1).toUpperCase()); sb.append(methodName.substring(1)); String methodNameShort = sb.toString(); StringBuffer sb1 = new StringBuffer(); sb1.append("[ ("); sb1.append(className); sb1.append(":"); sb1.append(lineNumber); sb1.append(")#"); sb1.append(methodNameShort); sb1.append(" ] "); return sb1.toString(); }catch (Exception e){ return "[]"; } }}
详细介绍:
Thread.currentThread().getStackTrace()
返回的是一个StackTraceElement数组,内容为调用函数堆栈,并且以调用层级关系保存。
STACK_TRACE_INDEX = 3
是因为Android是下标为3获取方法名, 纯Java是下标为2获取方法名。
0 0
- andriod 获取当前函数名
- java 获取当前函数名
- Bash 获取当前函数名
- PHP获取当前类名、函数名、方法名
- thinkphp 获取当前的方法名,类名,函数名
- Java中获取当前函数名
- python 获取当前行号 函数名 文件名
- python 获取当前函数名和行号
- shell 脚步获取当前的函数名
- ci获取当前控制器类名和方法名和PHP获取当前类名、函数名、方法名方法
- php获取当前类名函数名的方法
- php获取当前类名函数名的方法
- php获取/检查当前类名函数名的方法
- php获取当前类名函数名的方法
- Java 在函数中获取当前函数的函数名
- JAVA 获取当前的函数名,当前运行的类名
- JAVA 获取当前执行的函数名、当前运行的类名等等信息
- JAVA 获取当前执行的函数名、当前运行的类名等等信息
- 07使用CSS设置阴影图片
- linux 6.4 (64位)系统安装svn客户端 操作步骤
- Android 6.0 运行时权限处理完全解析
- PHP 安全:过滤、验证和转义
- php 的面试题分享
- andriod 获取当前函数名
- 关于回调函数和钩子函数基础知识的整理
- TemplateDoesNotExist错误之伤
- Activiy生命周期注意点
- Java中的类加载器详解
- 演练:为控件创建自定义工具箱图标
- 关于C++ const 的全面总结
- MyBatis中#{}和${}的区别详解
- Chrome开发者工具使用教程笔记