JavaでPrintfデバッグ __LINE__や__FILE__をJavaで使う
まるで旧世代プログラマーみたいな発想なのかもしれないが,Eclipseになれないうちは,printfデバッグをつかいたい.
伝統的なD関数(自分の中での,デバッグ出力用の関数)をJavaでも定義したいわけだが、、、現在の知識では,どっかのクラスに属させないと行けない為,結局以下のようになった。
public class D { public static void d(String msg) { System.out.println( "[" + new Throwable().getStackTrace()[1].getFileName() + ":" + new Throwable().getStackTrace()[1].getLineNumber() + "] " + msg); } }
Cでいうところの__LINE__や__FILE__はないため,上のような方法になった。他にも,CallerのMethodやClass名はとれるらしい。Javascriptではスタックトレースうまくいかなかったんだけど,Javaはすんなりいった。にしても、、、Throwableを毎回生成してていいものか。。。とりあえず動いているので、これでよしとする。
しかし,D()とかけずに,D.d()とかかなきゃいけないのが苦痛だ。。。いい方法はないものか。