• ベストアンサー

実行中のメソッド名

お世話になります。 実行中のメソッド名を取得することってできますか? public void methodA(){ System.out.println(□□□+"というメソッドが呼ばれました"); } の□□□になにをいれたらよいでしょうか? クラス名は取れる(this.class.getClass().getName())のですが実行中のメソッドってとれないのでしょうか? 以上よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

現在どのようなメソッドが呼び出されているか(スタックトレース)を知るには、Throwable クラスにある getStackTrace メソッドを使います。 メソッド名を調べたいところで、何か適当に例外クラスのインスタンスを作成し、(スローする必要はありません) getStackTrace でスタックトレース情報を取得したあと、そこからメソッド名の情報を取得してください。 ただし、この機能は Java のバージョンが 1.4 以降でないと使えません。

chi-kon
質問者

お礼

早速のご回答ありがとうございます。 なるほど。。。 そういう手を使うのですね。 勉強になりました。 log4jなどを用いてログを出すときに 何々メソッドの何行目とか情報をとれますが、 それもこのような方法でやっているのでしょうか? ありがとうございました。

関連するQ&A