Android获取Java类名/文件名/方法名/行号

    /**
     * Android打印方法路径
     */
    public static void printMethodPath() {
        //new 一个异常类
        Exception exception = new Exception();
        //调用者上级类名
        Log.i(TAG, "Class0———>:" + exception.getStackTrace()[0].getClassName());
        //调用者上级的上级类名
        Log.i(TAG, "Class1———>:" + exception.getStackTrace()[1].getClassName());
        //调用者上级的方法名
        Log.i(TAG, "MethodName0———>:" + exception.getStackTrace()[0].getMethodName());
        //调用者上级的上级方法名
        Log.i(TAG, "MethodName1———>:" + exception.getStackTrace()[1].getMethodName());
        //当前方法行号
        Log.i(TAG, "line0———>:" + exception.getStackTrace()[0].getLineNumber());
        //调用方法行号
        Log.i(TAG, "line1———>:" + exception.getStackTrace()[1].getLineNumber());
    }

原文地址:https://www.cnblogs.com/mjtabu/p/12111013.html

时间: 2024-08-09 00:39:45

Android获取Java类名/文件名/方法名/行号的相关文章

Java中获取文件名、类名、方法名、行号的方法

??在C语言中,可以通过宏FILE.LINE来获取文件名和行号,在Java语言中,则可以通过StackTraceElement类来获取文件名.类名.方法名.行号,具体代码如下: public static int getLineNumber( ){ StackTraceElement[] stackTrace = new Throwable().getStackTrace(); return stackTrace[1].getLineNumber( ); } public static Stri

java反射机制,通过类名获取对象,通过方法名和参数调

try {//得到对象Class c = Class.forName("完整类名");Object yourObj = c.newInstance();//得到方法Method methlist[] = cls.getDeclaredMethods();for (int i = 0; i < methlist.length; i++) {Method m = methlist[i];}//获取到方法对象,假设方法的参数是一个int,method名为setAgeMethod sAg

Java学习-024-获取当前类名或方法名二三文

今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法名时,源码中涉及类名或者方法名的地方必须同步变更,若修改的地方比较多,难免可能发生有遗漏的地方,那么后续通过日志查看分析原因时,就会找不到相应的地方,导致无法分析,查找原因. 为何要获取类名? 调试源码 记录日志 生成报告 统计分析,对调用比例占比大的方法,增强单元测试 构建系统调用关系链,对主要关

Android获取LayoutInflater对象的方法总结

在写Android程序时,有时候会编写自定义的View,使用Inflater对象来将布局文件解析成一个View.本文主要目的是总结获取LayoutInflater对象的方法. 1.若能获取context对象,可以有以下几种方法: LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View child = inflater.inflate(R.la

android获取sd卡路径方法

public String getSDPath(){  File sdDir = null;  boolean sdCardExist = Environment.getExternalStorageState()  .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在  if (sdCardExist)  {  sdDir = Environment.getExternalStorageDirectory();//获取跟目录  }

Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件

关注finddreams,一起分享,一起进步!http://blog.csdn.net/finddreams/article/details/45569089 在开发中,我们常常用打印log的方式来调试我们的应用.在Java中我们常常使用方法System.out.println()来在控制台打印日志,以便我们的调试.Android中有一个专门的类Log来实现在Android系统下日志的打印,更加方便我们定位程序出现问题的地方. 但是Android官方提供的Log类在实际项目使用中,也不是非常方便

输出类名,方法名以及行数等log信息

public static void print(String text){    boolean debug = true;    if (debug) {        Context context = BaseApp.getContext();        StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3];        // 获取类名.即包名+类名        String

Java反射:根据方法名动态调用方法,解决商品动态属性取值问题。

public class Goods{ private String goodsName; private String attr1; private String attr2; private String attr3; private String attr4; ......... private String attr20; setter/getter方法 } 在数据库表goods中,已知该商品的属性个数N(满足:N=5,attr1—attr5有值,attr6-attr20为空).问如何取

Android获取数据库sqlite文件方法的命令(亲测无root手机上可行)

run-as com.example.railsetmonisysapp.app cat /data/data/com.example.railsetmonisysapp.app/databases/rail.db > /storage/sdcard0/Download/a.db run-as 程序的包名 cat /data/data/程序的包名/databases/数据库名称.db>取出后存放的位置