Javaのバッドノウハウ:リソースバンドル
リソースバンドルを、
・最小限のコード量で
・できるだけバグを出さないように
・できるだけ早期にバグが検出できるように
扱う方法について。
とりあえず、デフォルトのロケールだけを扱ってみる。
まず以下のようなクラスを用意する。
class Messages {
private static final ResourceBundle RB = ResourceBundle.getBundle("msg");
enum Giko {
FOO, QUX;
private final String val = RB.getString(name());
@Override
public String toString() {
return val;
};
}
}
これに対応するプロパティファイル(msg.properties)は以下のとおり。
FOO = bar
QUX = baz
リソースバンドルを使うクラスは以下のとおり。
import static org.kaoriha.example.Messages.Giko.*;
public class Giko {
public static void main(String[] args) {
System.out.println("FOO:" + FOO.toString());
System.out.println("QUX:" + QUX.toString());
}
}
enum Gikoは一つと限る必要はない。enum Monaやenum Kumaという具合に複数使うことで、一種の名前空間として利用できる。
複数のロケールを扱う場合には、ThreadLocalで適当にやる。
Posted by hajime at 2007年04月29日 01:00