2006/12/13

今日の 2 時間で学ぶ今月の Java ホットトピック 12 月号

このエントリーをはてなブックマークに追加

というわけで、用賀にいってまいりました。

今月の 2 時間で学ぶ今月の Java ホットトピック

  • 片貝さん 「NetBeans 5.5 日本語版リリース直前企画 - NetBeans ツアー」
  • 奥津さん 「Java 言語 国際化の夕べ」

やっぱり、目当ては奥津さんの I18N。

メインは和暦について。SimpleDateFormat での G の扱いとか、平成 1 年 1 月 1 日は存在しないので厳密にパースしたら例外が発生するとか。やっぱりカレンダは奥が深いです。

ちなみに、元号がいつからはじまったなどというデータはコードに埋め込まれているのではなく、jre/lib/calendar.properties に記述してあるそうです。

このファイルの中身を抜粋してみると...

#
# Japanese imperial calendar
#
#   Meiji  since 1868-01-01 00:00:00 local time (Gregorian)
#   Taisho since 1912-07-30 00:00:00 local time (Gregorian)
#   Showa  since 1926-12-26 00:00:00 local time (Gregorian)
#   Heisei since 1989-01-08 00:00:00 local time (Gregorian)
calendar.japanese.type: LocalGregorianCalendar
calendar.japanese.eras: \
 name=Meiji,abbr=M,since=-3218832000000;  \
 name=Taisho,abbr=T,since=-1812153600000; \
 name=Showa,abbr=S,since=-1357516800000;  \
 name=Heisei,abbr=H,since=600220800000

後半のハイライトは ResourceBundle クラス。ResourceBundle.Control クラスを導入していろいろできるようになったようです。

たとえば...

  • リソースファイルとクラスのどちらかしか探索しないように指定する
  • デフォルトリソースを探さないようにする
  • リソースを探す順番をコントロールする
  • リソースに有効期限を設ける (有効期限がきたら、リソースの更新状況を調べて、更新されていれば再ロードする)
  • リソースファイルを XML で表記する

そうか、こう書けばよかったのか。勉強になりました。

2 件のコメント:

kyuka さんのコメント...

「jdk6.dev.java.net のダウンロードページでした ^^;; もしかすると、b104 と b105 はソースは変更なしで、パッケージングが変っただけなのかもしれませんね。」
基本的に、ソースは変わっていません。バージョン番号に入っていた"rc"が取れただけって感じです。(^^; JDK6、よろしくお願いしますね。:-) 
あと、JDK7の開発にも参加してくださいな~。

skrb さんのコメント...

あぁ、やっぱりそうだったんですね。

JDK 7 の開発に協力できるかどうかは分かりませんが、今までと同じように早い段階から試すのは確かなので、気がついたことがあればフィードバックするようにします。

しかし、JDK 6 の日本語ドキュメントですら協力できていないという現実も... orz