• 締切済み

Javaにおけるメソッド名・ライン数取得に関して

Javaの実行コンソールにて、メソッド名・ソースのライン数を出力させたいと思ってます。 C言語でいう、__func__や、__LINE__のように、 下記のように、System.out.println()内に埋め込み、それを出力させたいのです。(下記では、不明箇所をxxxとさせて頂いております。) <ソース-TestClass.java-> public void main(){ Test(); return; } private static void Test(){ System.out.println("メソッド名["+xxx+"] ライン["+ xxx +"]"); return; } <実行ターム> > java TestClass > メソッド名[Test] ライン[14] Javaではそういったメソッド名やライン数などの取得は困難なのでしょうか?または、そういったAPIは用意されておりますでしょうか? ご存じの方いらっしゃいましたら、ご教授お願い致します。

みんなの回答

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

自分自身のメソッド名でしたら、スタックトレースを利用して System.out.println((new Throwable()).getStackTrace()[0].getMethodName()); とかあります。 上記コードはJava 1.5です。

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

>>> C言語でいう、__func__や、__LINE__のように、 ご希望の物はないと思います。。ご自身でプログラムする必要があります。 またこれも重要な違いですが、main()に関しては、 public static void main(String[] args) と記述する必要があります。jvmから呼び出されるために、staticも必要となります。