正方形の周長 #18

PropertiesControlのソースはJDK1.7以降でないとコンパイルに失敗する。
newBundleメソッドのPropertyResourceBundleによる取り込み部分でリソース付きtry文を利用しているためである。
これはJDK1.7から導入された文法なので、
1.6以前であればreaderをcloseする処理の入ったfinally節を追加する必要がある。
ざっくりこんな感じで。

...snip
            if (stream != null) {
                BufferedReader reader = null;
                try {
                    reader = new BufferedReader(new InputStreamReader(stream, charset));
                    bundle = new PropertyResourceBundle(reader);
                } finally {
                    if (reader != null) reader.close();
                }
            }
...snip

IOException例外はnewBundleメソッドの呼び出し側に投げるのでここではcatchしない。
リソース付きtry文は簡略化されたソースが書け便利なのだが、
慣れない目には見かけが何だか異様に違和感があるような。