目的:
Javaでデバッグ実行時のみメッセージの出力を行いたい。
解決策:
変数modeDebugがtrueの時のみprintを実行すればよい。
実現方式1:
debugPrintメソッドを定義し、debugPrintメソッド内で
modeDebug変数を参照し、printの実行を判断する。
デバッグプリント文には、debugPrintメソッドを利用する。
public class DebugPrint { private static boolean modeDebug = true; public static void main(String[] args) { debugPrint("this is a debug print"); } public static void debugPrint(Object obj) { if (modeDebug) System.out.print(obj); } }
実現方式2:
デバッグ用のPrintStreamを定義する。
デバッグ時はPrintStreamはSystem.errなどの出力先を、
非デバッグ時は出力先なしのOutputStreamを指定する。
デバッグプリント文には、デバッグ用PrintStreamを利用する。
実現方式ごとのメリット・デメリットについては、
方法1は方法2に比べて実装量が少なくシンプルなので
軽く実装したい場合によい。
これに対して、方法2ではPrintStreamに実装されている
すべてのメソッド(formatなど)が利用可能なので
デバッグ文の内容を工夫することが可能。
方法1ではPrintStreamのメソッドを再実装する必要がある。
こんなとこかな?