3

重複の可能性:
現在実行中のメソッドの名前を取得する

Java特定のメソッドが独自の名前を知る方法はありますか? もしそうなら、メソッド内からどのように参照できますか?

4

2 に答える 2

5

スタック トレースを分析することで判断できます。ただし、パフォーマンスが大幅に低下する可能性があります。AOPユニバースでは、メソッド名を決定し、それを何らかのコンテキストに保存するアスペクトを持つこともできます。

スタックトレースメソッドでは、次のようにします

Exception e = new Exception();
e.fillInStackTrace();
e.getStackTrace()[0].getMethodName();

または(コメントで提案されているように)

Thread.currentThread().getStackTrace()[0].getMethodName();
于 2012-09-11T00:50:48.177 に答える
4

スタック トレースの最初の要素 ( 、この質問Thread.currentThread().getStackTrace()を参照) は、実行時に現在どのメソッドにいるのかを示します。

于 2012-09-11T00:51:11.047 に答える