ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

デバッグログ出力メソッド呼び出しをロード時に削除する

2007-11-17 23:59:31 | PG(Java)

Javaで、指定されたデバッグレベルに応じてデバッグログ出力メソッドの呼び出し自体を削除するライブラリー(エージェント?)を作ってみた!

Javaでは、デバッグモードやリリースモードといったビルドの種類に応じてデバッグログ出力メソッドの呼び出し自体をしたりやめたりするという切り替えは出来ない。なので呼び出す側の引数内の演算自体は常に行われてしまう為、実際に出力されない場合には無駄だった。
これをクラスのロード時に取り除くものが夢だった、というか欲しかったというわけ。これが出来たのはJavassistのおかげ~♪

ログ出力メソッドや削除対象クラスを示すのにアノテーションを使ってみたのでJDK1.5以降用だけど。アノテーションって、たぶんこういう事の為にあるんだよね。
実際のところ、JDK1.4でも実現できると思うし。(アノテーション削って、foreach使うのやめて、Listにキャストを付ければ…)
でもいい加減JDK1.5以降に移行しようよ、という願望を込めてみた^^;

それにしてもこういうログ出力削除って、絶対“車輪の再発明”(誰かが既に作ってるはず)だよな~。きっと探し方が悪いだけだと思う…。


Javaでパス名/ファイル名要素取得

2007-11-17 04:21:04 | PG(言語比較)

プログラム言語比較のファイル操作に、Javaでパス名からディレクトリ名・ファイル名を取得するメソッドを追加。

…なんで今まで書いてなかったんだろうなぁ。やっぱり拡張子を取得するメソッドとかが分からなかったからかな? Javaにそんなメソッドが無いのは、JavaはUNIXでも使う都合上、拡張子という概念には触れないようにしてるからなんだろうな~。(当然ドライブ名も無いし)