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();
}

これは、スタック トレースの 2 番目の要素を監視し、正しいメソッド名を返します。

アップデート:

最初のものは必要なことを行いますが、これはより優れています: 少なくとも新しいオブジェクトを作成する必要はありません:

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

警告ただし、これはすべてパフォーマンスに悪影響を与えることに言及する必要があります...

于 2012-10-19T10:55:36.477 に答える