在运行时获取方法的名称

时间:2012-10-19 10:53:32

标签: class runtime

对于Log目的,我想知道运行时方法的名称。

实施例

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

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

1 个答案:

答案 0 :(得分:0)

我认为这是Java ...如果是这种情况,则返回您当前所在方法的名称。

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

但要小心,不要将它放在方法中,因为那样会返回该方法的名称。你也可以用这个:

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

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

<强>更新

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

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

警告我必须提到所有这些对性能产生负面影响......