输出函数 带类名 方法名 参数 行号

public class Zprint {
    public static void log(Class<?> object, @Nullable String key, Object... out) {
        boolean next = false;
        String methodName;
        String simpleName = object.getSimpleName();
        StackTraceElement[] s = Thread.currentThread().getStackTrace();
        for (StackTraceElement value : s) {
            if (value.getMethodName().startsWith("lambda")) {
                next = true;
            }
        }
        if (!next) {
            methodName = s[3].getMethodName();
        } else {
            methodName = s[5].getMethodName();
        }
        int lines = s[3].getLineNumber();
        StringBuilder temp = new StringBuilder();
        for (Object anOut : out) {
            temp.append(" ").append(anOut).append(",");
        }
        String TAG="类class: "+ simpleName+" : ";
        if (key==null||key.isEmpty()){
//            System.out.println("类class : " + simpleName + "   方法method :" + methodName + "  line:" + lines + "  输出: " + temp);
            String parameter= "方法method :" + methodName + "  line:" + lines+" 输出: " + temp;
            Log.d(TAG,parameter);
        }else {
//            System.out.println("类class : " + simpleName + "   方法method :" + methodName + "  line:" + lines + "  输出: " + key + " :" + temp);
            String parameter ="方法method :" + methodName + "  line:" + lines+"  输出: " + key + " :" + temp;
            Log.d(TAG,parameter);
        }

    }
}

猜你喜欢

转载自blog.csdn.net/a1064072510/article/details/81874512
今日推荐