0

出于日志目的,我想知道运行时方法的名称。

前任。

public void methodA(){
Log.e("INSIDE", "//some code here to get the name of methodA");
}

如果我将在运行时获取方法的名称,它将减少我在不同方法中插入相同日志的重复任务。

4

1 回答 1

0

我假设这是 Java ......如果是这样,这将返回您当前所在的方法的名称。

String methodName = new Exception().getStackTrace()[0].getMethodName()

但是要小心,不要把它放在一个方法中,因为那样会返回那个方法的名字。你也可以使用这个:

public String getMethodName() {
    return new Exception().getStackTrace()[1].getMethodName();
}

这将观察堆栈跟踪的第二个元素,返回正确的方法名称。

更新:

虽然第一个做了它所需要的,但这更好:至少不涉及创建一个新对象:

Thread.currentThread.getStackTrace()[1].getMethodName();

警告我不得不提一下,所有这一切都会对性能产生不利影响......

于 2012-10-19T10:55:36.477 回答