風邪でダウン
今日は一日風邪でダウンしてました。
久々に熱出たな〜。
朝から病院行って薬飲んでねてた。
少しJavaネタを
Javaで変更されない変数(定数)を宣言する場合に
finalを付加すると思いますが、こうするとコンパイル時に
参照している箇所はコンパイラーがfinal宣言の実際の値に
置き換えます。
static final String FINALSTR = "a";
String str = FINALSTR;
private void test() {
if (str.equals("a")) {
System.out.println("equal");
} else {
System.out.println("not equal");
}
}
上の場合変数strにfinal宣言の値を代入してるところが
コンパイル後のclassファイルでは
String str = "a";
となります。
finalの値を参照している場合は宣言している部分だけ
変更しても意味がなく、全ての参照クラスの再コンパイルが
必要になります。
jadなどで逆コンパイルしてみてください。
okuyama version 0.3.2 をリリースしました。
http://sourceforge.jp/projects/okuyama/