再帰的にメッセージを評価する

  • MessageFormatter にて指定されていないメッセージ中のパラメータ {パラメータ名} は、メッセージソースの中に定義されている定義でさらに変換が可能です。
  • その際に formatRecursively() にてフォーマットを行います。
  • また、無限に再帰するような定義のとき StackOverflowError が発生するので、再帰回数を指定し回避することが可能です。
// メッセージの定義
message.recursion=Hello! {your.name}
your.name=Taro
// メッセージのフォーマットの再帰評価
MessageFormatter messageFormatter = ...;

// 結果は「Hello! Taro」となる。
String message = messageFormatter.create("message.recursion")
    .formatRecursively();