今日も暑いですね〜・・・。
でも今日は一日中研究室でずっと研究してたeXpresserです。
やることが決まっているっていうことは本当に嬉しいことで、それが「やりたいこと」であればなおさらです。
今日、研究で使っているプログラムを修正しようと思ったわけなんですよ。
修正することを簡単に言うと、今までプログラムのソース側で設定してた定数を、コマンドライン引数から設定するという修正。
プログラムの中でも比較的外側の修正だったので、たいしたことないかな〜?と思ったら、とんでもなかったです。
今までは、
public static final int X_STATES = 100;
public static final int Y_STATES = 100;
などのように記述してたのを、
private static int X_STATES;
private static int Y_STATES;
public Constructor(Parameter para){
X_STATES = para.x;
Y_STATES = para.y;
}
のように変更するだけなんですけど、ここに落とし穴が。
実は前のプログラムで、
public static double LENGTH =
Math.sqrt(X_STATES * X_STATES + Y_STATES * Y_STATES);
のように"X_STATES"や"Y_STATES"をモロに使って定義してた定数がありまして、それのせいでプログラムがうまく走ってくれず、1時間近く悩んでしまいました。
そりゃあ、値を代入してからじゃないと計算してくれませんしね・・・。
コンパイルエラーも出なかったので、「計算式書き換えちゃったかな?」と思ってしばらくプログラムの一番大事な計算式とにらめっこ。
プログラミングって、こうなると深みに嵌るんですよね。
まあ、1個勉強になったので全然いいんですが・・・。