正方形の周長 #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文は簡略化されたソースが書け便利なのだが、
慣れない目には見かけが何だか異様に違和感があるような。