3

区切り文字その他のオブジェクトを .toString() でグループ化せずに数値をフォーマットする java.text.MessageFormat のフォーマットを定義する可能性はありますか?

私の問題は、それが数値であるかどうかにかかわらず、事前に定義していない引数をフォーマットする必要があることです。私がちょうど使用する場合

java.text.MessageFormat.format("The object: {0}",someobject)

それは通常someobject.toString()、私が望むように呼び出すだけですが、someobjectが実際に数値1231231の場合、(ドイツ語ロケールでは) が返されますThe object: 1,231,231が、ここが必要The object: 1231231です。でフォーマットする

java.text.MessageFormat.format("{0,number,#}",1231231)

を返しますThe object: 1231231が、引数が数値でない場合は機能しません。数値と他のオブジェクトの両方で機能する形式を指定する方法はありますか?

(ご参考までに: 残念ながら、MessageFormat のロケールを変更することはできません。JBoss のロギング フレームワークに深く埋もれており、アクセスできないためです。)

UPDATE : String.valueOf(someobject) を引数として渡す前に呼び出すと、この問題は解決しますが、この問題はログ記録時に発生し、潜在的に高価な someobject を呼び出したくないため、私の場合は実行できません。ログレベルがログメッセージを許可しないため、 MessageFormat が適用されない場合は toString() 。

4

2 に答える 2