2007年04月29日

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
Comments
Post a comment






Remember personal info?