0

我想制作一个宏,在 Log.d 和 Log.e 输出期间打印出当前方法的名称。现在我只是在一个硬编码的字符串中输入方法名称,但是如果方法名称在未来发生变化,这显然是低效的,因为每个字符串都需要被搜索和替换。

我知道使用 getMethodName() 如本文所述:

如何在Java中获取方法名称

这个看起来也很有希望:

使用辅助扩展方法进行调试

SO上有无数这样的帖子,但我想找到不会过多影响运行时性能的调试目的的最佳方法。由于我使用的是 Eclipse,因此我想找到一个与该 IDE 配合良好的解决方案。

4

2 回答 2

4

这是我所知道的可用于当前执行的内容。

    Thread current = Thread.currentThread();
    StackTraceElement[] stack = current.getStackTrace();
    for(StackTraceElement element : stack)
    {
        if (!element.isNativeMethod()) {
            String className = element.getClassName();
            String fileName = element.getFileName();
            int lineNumber = element.getLineNumber();
            String methodName = element.getMethodName();
        }
    }
于 2013-06-12T20:51:12.277 回答
0

这是我在上面评论中提到的一个简单但非常有用的eclipse插件:下载插件

它是一个增量构建器,因此典型的构建时间以几分之一秒为单位。将其作为新构建器添加到您的 .project 文件中<buildCommand>,名称为:

<name>org.pskink.logger.builder</name>

它应该是<buildSpec>列表中的最后一个构建器

安装:只需将其复制到plugins文件夹并重新启动eclipse

于 2013-06-19T05:16:24.893 回答